diff --git a/include/vk_video/vulkan_video_codec_h264std.h b/include/vk_video/vulkan_video_codec_h264std.h index a23789c..ef7eaf7 100644 --- a/include/vk_video/vulkan_video_codec_h264std.h +++ b/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/include/vk_video/vulkan_video_codec_h264std_encode.h b/include/vk_video/vulkan_video_codec_h264std_encode.h index 2e0d706..58b8bdb 100644 --- a/include/vk_video/vulkan_video_codec_h264std_encode.h +++ b/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/include/vk_video/vulkan_video_codec_h265std.h b/include/vk_video/vulkan_video_codec_h265std.h index 793bdbc..ff5d0da 100644 --- a/include/vk_video/vulkan_video_codec_h265std.h +++ b/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/include/vk_video/vulkan_video_codec_h265std_encode.h b/include/vk_video/vulkan_video_codec_h265std_encode.h index 2574039..2a7024c 100644 --- a/include/vk_video/vulkan_video_codec_h265std_encode.h +++ b/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/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm index d123b33..48e9277 100644 --- a/include/vulkan/vulkan.cppm +++ b/include/vulkan/vulkan.cppm @@ -2683,6 +2683,9 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_NV_descriptor_pool_overallocation === + using VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + //=============== //=== HANDLEs === //=============== @@ -2929,6 +2932,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 { //====================== @@ -3027,10 +3031,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; @@ -3043,4 +3047,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/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index fa7f072..f95d855 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -83,7 +83,7 @@ #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; @@ -114,7 +114,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # include #endif -static_assert( VK_HEADER_VERSION == 262, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 263, "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 @@ -13689,6 +13689,24 @@ namespace VULKAN_HPP_NAMESPACE }; # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== 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 @@ -13703,7 +13721,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() ); @@ -13713,7 +13731,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 ) { @@ -13756,7 +13774,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 ); @@ -13769,7 +13787,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 ); @@ -13784,7 +13802,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; diff --git a/include/vulkan/vulkan_beta.h b/include/vulkan/vulkan_beta.h index f00ed3f..1871651 100644 --- a/include/vulkan/vulkan_beta.h +++ b/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/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 029b30b..bd88270 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -69,7 +69,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 262 +#define VK_HEADER_VERSION 263 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -1123,6 +1123,7 @@ typedef enum VkStructureType { 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_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, @@ -2723,6 +2724,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 @@ -8002,6 +8005,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; @@ -17674,6 +17678,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT( #endif +// 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/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp index 7afa442..9c5f90c 100644 --- a/include/vulkan/vulkan_enums.hpp +++ b/include/vulkan/vulkan_enums.hpp @@ -1143,8 +1143,9 @@ namespace VULKAN_HPP_NAMESPACE 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*/ + ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV }; enum class PipelineCacheHeaderVersion @@ -2878,11 +2879,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; @@ -2892,7 +2895,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 @@ -4497,7 +4501,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 @@ -4652,7 +4659,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; @@ -4670,7 +4679,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 @@ -4746,7 +4756,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; @@ -4765,7 +4777,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 @@ -5928,7 +5941,8 @@ namespace VULKAN_HPP_NAMESPACE 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; @@ -5937,7 +5951,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 diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp index 6dfa19a..7590193 100644 --- a/include/vulkan/vulkan_extension_inspection.hpp +++ b/include/vulkan/vulkan_extension_inspection.hpp @@ -401,9 +401,9 @@ namespace VULKAN_HPP_NAMESPACE "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_NV_descriptor_pool_overallocation" }; return deviceExtensions; } @@ -802,9 +802,9 @@ namespace VULKAN_HPP_NAMESPACE { "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_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { { } } } } } }; auto depIt = dependencies.find( extension ); return ( depIt != dependencies.end() ) ? depIt->second : noDependencies; } @@ -1524,7 +1524,7 @@ namespace VULKAN_HPP_NAMESPACE #if defined( VK_USE_PLATFORM_SCREEN_QNX ) || ( extension == "VK_QNX_external_memory_screen_buffer" ) #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - ; + || ( extension == "VK_NV_descriptor_pool_overallocation" ); } VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension ) diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp index 9e4f616..e0515c3 100644 --- a/include/vulkan/vulkan_handles.hpp +++ b/include/vulkan/vulkan_handles.hpp @@ -1699,6 +1699,9 @@ namespace VULKAN_HPP_NAMESPACE struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + //=== VK_NV_descriptor_pool_overallocation === + struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + //=================================== //=== HANDLE forward declarations === //=================================== diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp index 3005f4e..da632ac 100644 --- a/include/vulkan/vulkan_hash.hpp +++ b/include/vulkan/vulkan_hash.hpp @@ -7771,6 +7771,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 { diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp index b514fa1..2806413 100644 --- a/include/vulkan/vulkan_static_assertions.hpp +++ b/include/vulkan/vulkan_static_assertions.hpp @@ -6972,4 +6972,14 @@ 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, + "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV is not nothrow_move_constructible!" ); + #endif diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp index 8e479e1..72fc2e6 100644 --- a/include/vulkan/vulkan_structs.hpp +++ b/include/vulkan/vulkan_structs.hpp @@ -58815,6 +58815,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; diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp index f5eefb8..69c6d1b 100644 --- a/include/vulkan/vulkan_to_string.hpp +++ b/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 ) + " }"; } @@ -2256,6 +2260,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 +2366,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 +2905,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 ) + " }"; } @@ -4435,6 +4449,7 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eExternalFormatQNX: return "ExternalFormatQNX"; case StructureType::ePhysicalDeviceExternalMemoryScreenBufferFeaturesQNX: return "PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX"; #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + case StructureType::ePhysicalDeviceDescriptorPoolOverallocationFeaturesNV: return "PhysicalDeviceDescriptorPoolOverallocationFeaturesNV"; default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -5811,6 +5826,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 ) ) + " )"; } } @@ -6949,6 +6966,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 ) ) + " )"; } } @@ -7046,6 +7066,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 ) ) + " )"; } } @@ -7108,6 +7130,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 ) ) + " )"; } } @@ -8126,6 +8150,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 ) ) + " )"; } } diff --git a/registry/validusage.json b/registry/validusage.json index 62bd397..1f36c3a 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.3.262", - "comment": "from git branch: github-main commit: 6952ad062f031e3fc99b53ef28e009cbeca64583", - "date": "2023-08-25 07:27:39Z" + "api version": "1.3.263", + "comment": "from git branch: github-main commit: 4e32929f96e5af77fe5202b959f18c4ad7a06bbc", + "date": "2023-09-02 09:37:14Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -686,7 +686,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": "Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, 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, 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, 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, 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" + "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, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, 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, 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" }, { "vuid": "VUID-VkDeviceCreateInfo-sType-unique", @@ -6501,8 +6501,12 @@ "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" }, { - "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" + }, + { + "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" }, { "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057", @@ -11809,12 +11813,12 @@ "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" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-08808", - "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" + "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" }, { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08774", - "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" + "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" }, { "vuid": "VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775", @@ -21853,8 +21857,12 @@ "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" + }, + { + "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" }, { "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04607", @@ -28793,27 +28801,27 @@ "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" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07274", + "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" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07275", + "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" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-07276", + "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" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00207", + "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" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00208", + "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" }, { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00209", + "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" }, { @@ -29001,27 +29009,27 @@ "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" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07274", + "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" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07275", + "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" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-07276", + "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" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00207", + "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" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00208", + "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" }, { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00209", + "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" }, { @@ -29285,27 +29293,27 @@ "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" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07274", + "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" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07275", + "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" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-pRegions-07276", + "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" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00207", + "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" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00208", + "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" }, { - "vuid": "VUID-VkCopyBufferToImageInfo2-imageExtent-00209", + "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" }, { @@ -29525,27 +29533,27 @@ "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" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07274", + "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" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07275", + "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" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-pRegions-07276", + "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" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00207", + "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" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00208", + "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" }, { - "vuid": "VUID-VkCopyImageToBufferInfo2-imageExtent-00209", + "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" }, { @@ -29725,7 +29733,7 @@ "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageExtent-09115", + "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" }, { @@ -29773,27 +29781,27 @@ "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pRegions-07274", + "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pRegions-07275", + "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-pRegions-07276", + "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageExtent-00207", + "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageExtent-00208", + "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" }, { - "vuid": "VUID-VkCopyMemoryToImageInfoEXT-imageExtent-00209", + "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" }, { @@ -29953,7 +29961,7 @@ "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageExtent-09115", + "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" }, { @@ -30001,27 +30009,27 @@ "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pRegions-07274", + "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pRegions-07275", + "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-pRegions-07276", + "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageExtent-00207", + "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageExtent-00208", + "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" }, { - "vuid": "VUID-VkCopyImageToMemoryInfoEXT-imageExtent-00209", + "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" }, { @@ -30185,7 +30193,7 @@ "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-extent-09115", + "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" }, { @@ -30229,27 +30237,27 @@ "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-07274", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-07275", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-07276", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-imageExtent-00207", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-imageExtent-00208", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-imageExtent-00209", + "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" }, { @@ -30289,7 +30297,7 @@ "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-extent-09115", + "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" }, { @@ -30333,27 +30341,27 @@ "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-07274", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-07275", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-pRegions-07276", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-imageExtent-00207", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-imageExtent-00208", + "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" }, { - "vuid": "VUID-VkCopyImageToImageInfoEXT-imageExtent-00209", + "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" }, { @@ -32430,7 +32438,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07835", @@ -32446,7 +32454,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07837", @@ -32486,7 +32494,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07934", @@ -32498,7 +32506,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07841", @@ -32506,7 +32514,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07843", @@ -32514,7 +32522,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07844", @@ -32522,7 +32530,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07845", @@ -32530,7 +32538,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07846", @@ -32538,7 +32546,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07847", @@ -32580,6 +32588,10 @@ "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" }, + { + "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" + }, { "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" @@ -32592,6 +32604,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -32612,6 +32632,10 @@ "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" }, + { + "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" + }, { "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" @@ -32638,7 +32662,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -32718,7 +32742,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-attachmentCount-07750", @@ -32726,7 +32750,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07751", @@ -32736,6 +32760,10 @@ "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" }, + { + "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" + }, { "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" @@ -32840,6 +32868,10 @@ "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" }, + { + "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" + }, { "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" @@ -32898,7 +32930,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07627", @@ -32906,7 +32938,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07628", @@ -32922,7 +32954,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07630", @@ -32930,7 +32962,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07631", @@ -32974,7 +33006,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07637", @@ -33046,7 +33078,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07643", @@ -33054,7 +33086,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07644", @@ -33062,7 +33094,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07645", @@ -33070,7 +33102,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07646", @@ -33078,15 +33110,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07648", @@ -33094,7 +33130,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-None-07649", @@ -33102,7 +33138,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-pColorBlendEnables-07470", @@ -33310,7 +33346,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDraw-pDynamicStates-08715", @@ -33324,6 +33360,10 @@ "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" }, + { + "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" + }, { "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" @@ -33778,7 +33818,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07835", @@ -33794,7 +33834,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07837", @@ -33834,7 +33874,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934", @@ -33846,7 +33886,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07841", @@ -33854,7 +33894,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07843", @@ -33862,7 +33902,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07844", @@ -33870,7 +33910,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07845", @@ -33878,7 +33918,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07846", @@ -33886,7 +33926,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07847", @@ -33928,6 +33968,10 @@ "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" }, + { + "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" + }, { "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" @@ -33940,6 +33984,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -33960,6 +34012,10 @@ "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" }, + { + "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" + }, { "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" @@ -33986,7 +34042,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -34066,7 +34122,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-attachmentCount-07750", @@ -34074,7 +34130,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07751", @@ -34084,6 +34140,10 @@ "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" }, + { + "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" + }, { "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" @@ -34188,6 +34248,10 @@ "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" }, + { + "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" + }, { "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" @@ -34246,7 +34310,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07627", @@ -34254,7 +34318,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07628", @@ -34270,7 +34334,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07630", @@ -34278,7 +34342,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07631", @@ -34322,7 +34386,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07637", @@ -34394,7 +34458,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07643", @@ -34402,7 +34466,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07644", @@ -34410,7 +34474,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07645", @@ -34418,7 +34482,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07646", @@ -34426,15 +34490,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07648", @@ -34442,7 +34510,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-None-07649", @@ -34450,7 +34518,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-pColorBlendEnables-07470", @@ -34658,7 +34726,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexed-pDynamicStates-08715", @@ -34672,6 +34740,10 @@ "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" }, + { + "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" + }, { "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" @@ -35138,7 +35210,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07835", @@ -35154,7 +35226,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07837", @@ -35194,7 +35266,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934", @@ -35206,7 +35278,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07841", @@ -35214,7 +35286,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07843", @@ -35222,7 +35294,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07844", @@ -35230,7 +35302,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07845", @@ -35238,7 +35310,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07846", @@ -35246,7 +35318,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07847", @@ -35288,6 +35360,10 @@ "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" }, + { + "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" + }, { "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" @@ -35300,6 +35376,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -35320,6 +35404,10 @@ "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" }, + { + "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" + }, { "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" @@ -35346,7 +35434,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -35426,7 +35514,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-attachmentCount-07750", @@ -35434,7 +35522,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07751", @@ -35444,6 +35532,10 @@ "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" }, + { + "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" + }, { "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" @@ -35548,6 +35640,10 @@ "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" }, + { + "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" + }, { "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" @@ -35606,7 +35702,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07627", @@ -35614,7 +35710,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07628", @@ -35630,7 +35726,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07630", @@ -35638,7 +35734,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07631", @@ -35682,7 +35778,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07637", @@ -35754,7 +35850,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07643", @@ -35762,7 +35858,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07644", @@ -35770,7 +35866,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07645", @@ -35778,7 +35874,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07646", @@ -35786,15 +35882,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07648", @@ -35802,7 +35902,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-07649", @@ -35810,7 +35910,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470", @@ -36018,7 +36118,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiEXT-pDynamicStates-08715", @@ -36032,6 +36132,10 @@ "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" }, + { + "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" + }, { "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" @@ -36502,7 +36606,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07835", @@ -36518,7 +36622,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07837", @@ -36558,7 +36662,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934", @@ -36570,7 +36674,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07841", @@ -36578,7 +36682,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07843", @@ -36586,7 +36690,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07844", @@ -36594,7 +36698,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07845", @@ -36602,7 +36706,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07846", @@ -36610,7 +36714,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07847", @@ -36652,6 +36756,10 @@ "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" }, + { + "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" + }, { "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" @@ -36664,6 +36772,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -36684,6 +36800,10 @@ "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" }, + { + "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" + }, { "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" @@ -36710,7 +36830,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -36790,7 +36910,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-07750", @@ -36798,7 +36918,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07751", @@ -36808,6 +36928,10 @@ "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" }, + { + "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" + }, { "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" @@ -36912,6 +37036,10 @@ "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" }, + { + "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" + }, { "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" @@ -36970,7 +37098,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07627", @@ -36978,7 +37106,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07628", @@ -36994,7 +37122,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07630", @@ -37002,7 +37130,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07631", @@ -37046,7 +37174,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07637", @@ -37118,7 +37246,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07643", @@ -37126,7 +37254,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07644", @@ -37134,7 +37262,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07645", @@ -37142,7 +37270,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07646", @@ -37150,15 +37278,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07648", @@ -37166,7 +37298,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07649", @@ -37174,7 +37306,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470", @@ -37382,7 +37514,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715", @@ -37396,6 +37528,10 @@ "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" }, + { + "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" + }, { "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" @@ -37882,7 +38018,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07835", @@ -37898,7 +38034,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07837", @@ -37938,7 +38074,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934", @@ -37950,7 +38086,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07841", @@ -37958,7 +38094,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07843", @@ -37966,7 +38102,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07844", @@ -37974,7 +38110,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07845", @@ -37982,7 +38118,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07846", @@ -37990,7 +38126,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07847", @@ -38032,6 +38168,10 @@ "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" }, + { + "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" + }, { "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" @@ -38044,6 +38184,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -38064,6 +38212,10 @@ "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" }, + { + "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" + }, { "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" @@ -38090,7 +38242,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -38170,7 +38322,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-attachmentCount-07750", @@ -38178,7 +38330,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07751", @@ -38188,6 +38340,10 @@ "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" }, + { + "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" + }, { "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" @@ -38292,6 +38448,10 @@ "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" }, + { + "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" + }, { "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" @@ -38350,7 +38510,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07627", @@ -38358,7 +38518,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07628", @@ -38374,7 +38534,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07630", @@ -38382,7 +38542,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07631", @@ -38426,7 +38586,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07637", @@ -38498,7 +38658,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07643", @@ -38506,7 +38666,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07644", @@ -38514,7 +38674,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07645", @@ -38522,7 +38682,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07646", @@ -38530,15 +38690,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07648", @@ -38546,7 +38710,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-None-07649", @@ -38554,7 +38718,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-pColorBlendEnables-07470", @@ -38762,7 +38926,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirect-pDynamicStates-08715", @@ -38776,6 +38940,10 @@ "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" }, + { + "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" + }, { "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" @@ -39274,7 +39442,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07835", @@ -39290,7 +39458,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07837", @@ -39330,7 +39498,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934", @@ -39342,7 +39510,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07841", @@ -39350,7 +39518,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07843", @@ -39358,7 +39526,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07844", @@ -39366,7 +39534,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07845", @@ -39374,7 +39542,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07846", @@ -39382,7 +39550,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07847", @@ -39424,6 +39592,10 @@ "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" }, + { + "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" + }, { "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" @@ -39436,6 +39608,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -39456,6 +39636,10 @@ "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" }, + { + "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" + }, { "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" @@ -39482,7 +39666,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -39562,7 +39746,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-attachmentCount-07750", @@ -39570,7 +39754,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07751", @@ -39580,6 +39764,10 @@ "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" }, + { + "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" + }, { "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" @@ -39684,6 +39872,10 @@ "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" }, + { + "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" + }, { "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" @@ -39742,7 +39934,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07627", @@ -39750,7 +39942,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07628", @@ -39766,7 +39958,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07630", @@ -39774,7 +39966,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07631", @@ -39818,7 +40010,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07637", @@ -39890,7 +40082,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07643", @@ -39898,7 +40090,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07644", @@ -39906,7 +40098,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07645", @@ -39914,7 +40106,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07646", @@ -39922,15 +40114,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07648", @@ -39938,7 +40134,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-07649", @@ -39946,7 +40142,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470", @@ -40154,7 +40350,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectCount-pDynamicStates-08715", @@ -40168,6 +40364,10 @@ "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" }, + { + "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" + }, { "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" @@ -40678,7 +40878,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07835", @@ -40694,7 +40894,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07837", @@ -40734,7 +40934,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934", @@ -40746,7 +40946,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07841", @@ -40754,7 +40954,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07843", @@ -40762,7 +40962,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07844", @@ -40770,7 +40970,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07845", @@ -40778,7 +40978,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07846", @@ -40786,7 +40986,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07847", @@ -40828,6 +41028,10 @@ "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" }, + { + "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" + }, { "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" @@ -40840,6 +41044,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -40860,6 +41072,10 @@ "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" }, + { + "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" + }, { "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" @@ -40886,7 +41102,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -40966,7 +41182,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-attachmentCount-07750", @@ -40974,7 +41190,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07751", @@ -40984,6 +41200,10 @@ "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" }, + { + "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" + }, { "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" @@ -41088,6 +41308,10 @@ "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" }, + { + "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" + }, { "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" @@ -41146,7 +41370,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07627", @@ -41154,7 +41378,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07628", @@ -41170,7 +41394,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07630", @@ -41178,7 +41402,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07631", @@ -41222,7 +41446,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07637", @@ -41294,7 +41518,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07643", @@ -41302,7 +41526,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07644", @@ -41310,7 +41534,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07645", @@ -41318,7 +41542,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07646", @@ -41326,15 +41550,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07648", @@ -41342,7 +41570,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07649", @@ -41350,7 +41578,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470", @@ -41558,7 +41786,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715", @@ -41572,6 +41800,10 @@ "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" }, + { + "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" + }, { "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" @@ -42082,7 +42314,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07835", @@ -42098,7 +42330,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07837", @@ -42138,7 +42370,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934", @@ -42150,7 +42382,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07841", @@ -42158,7 +42390,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07843", @@ -42166,7 +42398,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07844", @@ -42174,7 +42406,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07845", @@ -42182,7 +42414,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07846", @@ -42190,7 +42422,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07847", @@ -42232,6 +42464,10 @@ "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" }, + { + "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" + }, { "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" @@ -42244,6 +42480,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -42264,6 +42508,10 @@ "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" }, + { + "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" + }, { "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" @@ -42290,7 +42538,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -42370,7 +42618,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-07750", @@ -42378,7 +42626,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07751", @@ -42388,6 +42636,10 @@ "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" }, + { + "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" + }, { "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" @@ -42492,6 +42744,10 @@ "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" }, + { + "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" + }, { "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" @@ -42550,7 +42806,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07627", @@ -42558,7 +42814,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07628", @@ -42574,7 +42830,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07630", @@ -42582,7 +42838,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07631", @@ -42626,7 +42882,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07637", @@ -42698,7 +42954,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07643", @@ -42706,7 +42962,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07644", @@ -42714,7 +42970,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07645", @@ -42722,7 +42978,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07646", @@ -42730,15 +42986,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07648", @@ -42746,7 +43006,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07649", @@ -42754,7 +43014,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470", @@ -42962,7 +43222,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715", @@ -42976,6 +43236,10 @@ "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" }, + { + "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" + }, { "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" @@ -43494,7 +43758,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07835", @@ -43510,7 +43774,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07837", @@ -43550,7 +43814,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07934", @@ -43562,7 +43826,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07841", @@ -43570,7 +43834,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07843", @@ -43578,7 +43842,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07844", @@ -43586,7 +43850,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07845", @@ -43594,7 +43858,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07846", @@ -43602,7 +43866,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07847", @@ -43644,6 +43908,10 @@ "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" }, + { + "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" + }, { "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" @@ -43656,6 +43924,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -43676,6 +43952,10 @@ "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" }, + { + "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" + }, { "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" @@ -43702,7 +43982,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -43782,7 +44062,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-07750", @@ -43790,7 +44070,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07751", @@ -43800,6 +44080,10 @@ "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" }, + { + "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" + }, { "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" @@ -43904,6 +44188,10 @@ "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" }, + { + "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" + }, { "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" @@ -43962,7 +44250,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07627", @@ -43970,7 +44258,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07628", @@ -43986,7 +44274,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07630", @@ -43994,7 +44282,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07631", @@ -44038,7 +44326,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07637", @@ -44110,7 +44398,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07643", @@ -44118,7 +44406,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07644", @@ -44126,7 +44414,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07645", @@ -44134,7 +44422,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07646", @@ -44142,15 +44430,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07648", @@ -44158,7 +44450,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07649", @@ -44166,7 +44458,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470", @@ -44374,7 +44666,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715", @@ -44388,6 +44680,10 @@ "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" }, + { + "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" + }, { "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" @@ -44962,7 +45258,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07835", @@ -44978,7 +45274,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07837", @@ -45018,7 +45314,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934", @@ -45030,7 +45326,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07841", @@ -45038,7 +45334,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07843", @@ -45046,7 +45342,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07844", @@ -45054,7 +45350,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07845", @@ -45062,7 +45358,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07846", @@ -45070,7 +45366,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07847", @@ -45112,6 +45408,10 @@ "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" }, + { + "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" + }, { "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" @@ -45124,6 +45424,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -45144,6 +45452,10 @@ "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" }, + { + "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" + }, { "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" @@ -45170,7 +45482,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -45250,7 +45562,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-attachmentCount-07750", @@ -45258,7 +45570,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07751", @@ -45268,6 +45580,10 @@ "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" }, + { + "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" + }, { "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" @@ -45372,6 +45688,10 @@ "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" }, + { + "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" + }, { "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" @@ -45430,7 +45750,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07627", @@ -45438,7 +45758,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07628", @@ -45454,7 +45774,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07630", @@ -45462,7 +45782,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07631", @@ -45506,7 +45826,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07637", @@ -45578,7 +45898,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07643", @@ -45586,7 +45906,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07644", @@ -45594,7 +45914,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07645", @@ -45602,7 +45922,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07646", @@ -45610,15 +45930,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07648", @@ -45626,7 +45950,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07649", @@ -45634,7 +45958,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470", @@ -45842,7 +46166,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715", @@ -45856,6 +46180,10 @@ "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" }, + { + "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" + }, { "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" @@ -46238,7 +46566,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07835", @@ -46254,7 +46582,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07837", @@ -46294,7 +46622,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934", @@ -46306,7 +46634,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07841", @@ -46314,7 +46642,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07843", @@ -46322,7 +46650,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07844", @@ -46330,7 +46658,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07845", @@ -46338,7 +46666,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07846", @@ -46346,7 +46674,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07847", @@ -46388,6 +46716,10 @@ "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" }, + { + "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" + }, { "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" @@ -46400,6 +46732,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -46420,6 +46760,10 @@ "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" }, + { + "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" + }, { "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" @@ -46446,7 +46790,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -46526,7 +46870,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-07750", @@ -46534,7 +46878,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07751", @@ -46544,6 +46888,10 @@ "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" }, + { + "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" + }, { "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" @@ -46648,6 +46996,10 @@ "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" }, + { + "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" + }, { "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" @@ -46706,7 +47058,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07627", @@ -46714,7 +47066,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07628", @@ -46730,7 +47082,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07630", @@ -46738,7 +47090,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07631", @@ -46782,7 +47134,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07637", @@ -46854,7 +47206,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07643", @@ -46862,7 +47214,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07644", @@ -46870,7 +47222,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07645", @@ -46878,7 +47230,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07646", @@ -46886,15 +47238,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07648", @@ -46902,7 +47258,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-07649", @@ -46910,7 +47266,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470", @@ -47118,7 +47474,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715", @@ -47132,6 +47488,10 @@ "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" }, + { + "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" + }, { "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" @@ -47562,7 +47922,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835", @@ -47578,7 +47938,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837", @@ -47618,7 +47978,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934", @@ -47630,7 +47990,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07841", @@ -47638,7 +47998,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07843", @@ -47646,7 +48006,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07844", @@ -47654,7 +48014,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07845", @@ -47662,7 +48022,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07846", @@ -47670,7 +48030,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07847", @@ -47712,6 +48072,10 @@ "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" }, + { + "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" + }, { "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" @@ -47724,6 +48088,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -47744,6 +48116,10 @@ "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" }, + { + "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" + }, { "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" @@ -47770,7 +48146,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -47850,7 +48226,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-07750", @@ -47858,7 +48234,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07751", @@ -47868,6 +48244,10 @@ "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" }, + { + "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" + }, { "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" @@ -47972,6 +48352,10 @@ "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" }, + { + "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" + }, { "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" @@ -48030,7 +48414,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07627", @@ -48038,7 +48422,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07628", @@ -48054,7 +48438,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07630", @@ -48062,7 +48446,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07631", @@ -48106,7 +48490,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07637", @@ -48178,7 +48562,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07643", @@ -48186,7 +48570,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07644", @@ -48194,7 +48578,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07645", @@ -48202,7 +48586,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07646", @@ -48210,15 +48594,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07648", @@ -48226,7 +48614,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07649", @@ -48234,7 +48622,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470", @@ -48442,7 +48830,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715", @@ -48456,6 +48844,10 @@ "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" }, + { + "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" + }, { "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" @@ -48902,7 +49294,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07835", @@ -48918,7 +49310,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07837", @@ -48958,7 +49350,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934", @@ -48970,7 +49362,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07841", @@ -48978,7 +49370,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07843", @@ -48986,7 +49378,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07844", @@ -48994,7 +49386,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07845", @@ -49002,7 +49394,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07846", @@ -49010,7 +49402,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07847", @@ -49052,6 +49444,10 @@ "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" }, + { + "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" + }, { "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" @@ -49064,6 +49460,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -49084,6 +49488,10 @@ "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" }, + { + "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" + }, { "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" @@ -49110,7 +49518,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -49190,7 +49598,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-attachmentCount-07750", @@ -49198,7 +49606,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07751", @@ -49208,6 +49616,10 @@ "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" }, + { + "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" + }, { "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" @@ -49312,6 +49724,10 @@ "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" }, + { + "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" + }, { "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" @@ -49370,7 +49786,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07627", @@ -49378,7 +49794,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07628", @@ -49394,7 +49810,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07630", @@ -49402,7 +49818,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07631", @@ -49446,7 +49862,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07637", @@ -49518,7 +49934,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07643", @@ -49526,7 +49942,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07644", @@ -49534,7 +49950,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07645", @@ -49542,7 +49958,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07646", @@ -49550,15 +49966,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07648", @@ -49566,7 +49986,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-07649", @@ -49574,7 +49994,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pColorBlendEnables-07470", @@ -49782,7 +50202,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715", @@ -49796,6 +50216,10 @@ "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" }, + { + "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" + }, { "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" @@ -50206,7 +50630,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835", @@ -50222,7 +50646,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837", @@ -50262,7 +50686,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934", @@ -50274,7 +50698,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07841", @@ -50282,7 +50706,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07843", @@ -50290,7 +50714,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07844", @@ -50298,7 +50722,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07845", @@ -50306,7 +50730,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07846", @@ -50314,7 +50738,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07847", @@ -50356,6 +50780,10 @@ "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" }, + { + "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" + }, { "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" @@ -50368,6 +50796,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -50388,6 +50824,10 @@ "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" }, + { + "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" + }, { "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" @@ -50414,7 +50854,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -50494,7 +50934,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-07750", @@ -50502,7 +50942,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07751", @@ -50512,6 +50952,10 @@ "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" }, + { + "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" + }, { "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" @@ -50616,6 +51060,10 @@ "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" }, + { + "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" + }, { "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" @@ -50674,7 +51122,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07627", @@ -50682,7 +51130,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07628", @@ -50698,7 +51146,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07630", @@ -50706,7 +51154,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07631", @@ -50750,7 +51198,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07637", @@ -50822,7 +51270,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07643", @@ -50830,7 +51278,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07644", @@ -50838,7 +51286,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07645", @@ -50846,7 +51294,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07646", @@ -50854,15 +51302,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07648", @@ -50870,7 +51322,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-07649", @@ -50878,7 +51330,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470", @@ -51086,7 +51538,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715", @@ -51100,6 +51552,10 @@ "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" }, + { + "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" + }, { "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" @@ -51558,7 +52014,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835", @@ -51574,7 +52030,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837", @@ -51614,7 +52070,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934", @@ -51626,7 +52082,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07841", @@ -51634,7 +52090,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07843", @@ -51642,7 +52098,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07844", @@ -51650,7 +52106,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07845", @@ -51658,7 +52114,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07846", @@ -51666,7 +52122,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07847", @@ -51708,6 +52164,10 @@ "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" }, + { + "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" + }, { "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" @@ -51720,6 +52180,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -51740,6 +52208,10 @@ "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" }, + { + "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" + }, { "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" @@ -51766,7 +52238,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -51846,7 +52318,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-07750", @@ -51854,7 +52326,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07751", @@ -51864,6 +52336,10 @@ "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" }, + { + "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" + }, { "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" @@ -51968,6 +52444,10 @@ "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" }, + { + "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" + }, { "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" @@ -52026,7 +52506,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07627", @@ -52034,7 +52514,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07628", @@ -52050,7 +52530,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07630", @@ -52058,7 +52538,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07631", @@ -52102,7 +52582,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07637", @@ -52174,7 +52654,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07643", @@ -52182,7 +52662,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07644", @@ -52190,7 +52670,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07645", @@ -52198,7 +52678,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07646", @@ -52206,15 +52686,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07648", @@ -52222,7 +52706,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07649", @@ -52230,7 +52714,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470", @@ -52438,7 +52922,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715", @@ -52452,6 +52936,10 @@ "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" }, + { + "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" + }, { "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" @@ -52898,7 +53386,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07835", @@ -52914,7 +53402,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07837", @@ -52954,7 +53442,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934", @@ -52966,7 +53454,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07841", @@ -52974,7 +53462,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07843", @@ -52982,7 +53470,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07844", @@ -52990,7 +53478,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07845", @@ -52998,7 +53486,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07846", @@ -53006,7 +53494,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07847", @@ -53048,6 +53536,10 @@ "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" }, + { + "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" + }, { "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" @@ -53060,6 +53552,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -53080,6 +53580,10 @@ "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" }, + { + "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" + }, { "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" @@ -53106,7 +53610,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -53186,7 +53690,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-attachmentCount-07750", @@ -53194,7 +53698,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07751", @@ -53204,6 +53708,10 @@ "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" }, + { + "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" + }, { "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" @@ -53308,6 +53816,10 @@ "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" }, + { + "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" + }, { "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" @@ -53366,7 +53878,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07627", @@ -53374,7 +53886,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07628", @@ -53390,7 +53902,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07630", @@ -53398,7 +53910,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07631", @@ -53442,7 +53954,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07637", @@ -53514,7 +54026,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07643", @@ -53522,7 +54034,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07644", @@ -53530,7 +54042,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07645", @@ -53538,7 +54050,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07646", @@ -53546,15 +54058,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07648", @@ -53562,7 +54078,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-07649", @@ -53570,7 +54086,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pColorBlendEnables-07470", @@ -53778,7 +54294,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715", @@ -53792,6 +54308,10 @@ "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" }, + { + "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" + }, { "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" @@ -54186,7 +54706,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835", @@ -54202,7 +54722,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837", @@ -54242,7 +54762,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934", @@ -54254,7 +54774,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07841", @@ -54262,7 +54782,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07843", @@ -54270,7 +54790,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07844", @@ -54278,7 +54798,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07845", @@ -54286,7 +54806,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07846", @@ -54294,7 +54814,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07847", @@ -54336,6 +54856,10 @@ "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" }, + { + "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" + }, { "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" @@ -54348,6 +54872,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -54368,6 +54900,10 @@ "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" }, + { + "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" + }, { "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" @@ -54394,7 +54930,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -54474,7 +55010,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-attachmentCount-07750", @@ -54482,7 +55018,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07751", @@ -54492,6 +55028,10 @@ "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" }, + { + "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" + }, { "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" @@ -54596,6 +55136,10 @@ "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" }, + { + "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" + }, { "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" @@ -54654,7 +55198,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07627", @@ -54662,7 +55206,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07628", @@ -54678,7 +55222,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07630", @@ -54686,7 +55230,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07631", @@ -54730,7 +55274,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07637", @@ -54802,7 +55346,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07643", @@ -54810,7 +55354,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07644", @@ -54818,7 +55362,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07645", @@ -54826,7 +55370,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07646", @@ -54834,15 +55378,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07648", @@ -54850,7 +55398,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-07649", @@ -54858,7 +55406,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pColorBlendEnables-07470", @@ -55066,7 +55614,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715", @@ -55080,6 +55628,10 @@ "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" }, + { + "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" + }, { "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" @@ -61078,7 +61630,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07835", @@ -61094,7 +61646,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07837", @@ -61134,7 +61686,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934", @@ -61146,7 +61698,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07841", @@ -61154,7 +61706,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07843", @@ -61162,7 +61714,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07844", @@ -61170,7 +61722,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07845", @@ -61178,7 +61730,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07846", @@ -61186,7 +61738,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07847", @@ -61228,6 +61780,10 @@ "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" }, + { + "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" + }, { "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" @@ -61240,6 +61796,14 @@ "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" }, + { + "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" + }, + { + "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" + }, { "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" @@ -61260,6 +61824,10 @@ "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" }, + { + "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" + }, { "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" @@ -61286,7 +61854,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552", @@ -61366,7 +61934,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-attachmentCount-07750", @@ -61374,7 +61942,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07751", @@ -61384,6 +61952,10 @@ "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" }, + { + "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" + }, { "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" @@ -61488,6 +62060,10 @@ "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" }, + { + "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" + }, { "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" @@ -61546,7 +62122,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07627", @@ -61554,7 +62130,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07628", @@ -61570,7 +62146,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07630", @@ -61578,7 +62154,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07631", @@ -61622,7 +62198,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07637", @@ -61694,7 +62270,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07643", @@ -61702,7 +62278,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07644", @@ -61710,7 +62286,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07645", @@ -61718,7 +62294,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07646", @@ -61726,15 +62302,19 @@ }, { "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" }, { "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" }, + { + "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" + }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07648", @@ -61742,7 +62322,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-07649", @@ -61750,7 +62330,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470", @@ -61958,7 +62538,7 @@ }, { "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" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715", @@ -61972,6 +62552,10 @@ "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" }, + { + "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" + }, { "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" @@ -65276,6 +65860,10 @@ }, "VkPresentInfoKHR": { "core": [ + { + "vuid": "VUID-VkPresentInfoKHR-pSwapchain-09231", + "text": "Elements of pSwapchain must be unique" + }, { "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" @@ -72542,19 +73130,11 @@ }, { "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" }, { "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" } ] }, @@ -72631,10 +73211,6 @@ { "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" } ] }, @@ -72718,27 +73294,15 @@ }, { "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" }, { "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" }, { "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" }, { "vuid": "VUID-VkVideoEncodeH265SessionParametersAddInfoEXT-stdVPSCount-06438", @@ -72847,10 +73411,6 @@ { "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" } ] }, @@ -75970,6 +76530,14 @@ } ] }, + "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV" + } + ] + }, "VkPhysicalDevicePushDescriptorPropertiesKHR": { "core": [ { @@ -78536,10 +79104,6 @@ "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 Execution Model 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 Execution Model must be less than or equal to maxFragmentDualSrcAttachments" - }, { "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 Execution Model must be less than or equal to maxFragmentCombinedOutputResources" @@ -79282,11 +79846,11 @@ }, { "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 a sampler object with unnormalizedCordinates 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" }, { "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 a sampler object with unnormalizedCordinates 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" }, { "vuid": "VUID-RuntimeSpirv-OpImageBlockMatchSSDQCOM-06988", @@ -79378,11 +79942,11 @@ }, { "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 unnormalizedCordinates equal to VK_TRUE" + "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" }, { "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 unnormalizedCordinates equal to VK_TRUE" + "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" }, { "vuid": "VUID-RuntimeSpirv-maxBlockMatchRegion-09225", diff --git a/registry/video.xml b/registry/video.xml index bb534c3..a7e66db 100644 --- a/registry/video.xml +++ b/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/registry/vk.xml b/registry/vk.xml index 8e272f1..e07d4bf 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -175,7 +175,7 @@ branch of the member gitlab server. #define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 262 +#define VK_HEADER_VERSION 263 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) // Version of this file @@ -6974,10 +6974,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 @@ -7028,7 +7028,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - VkVideoEncodeH264RateControlFlagsEXT flags + VkVideoEncodeH264RateControlFlagsEXT flags uint32_t gopFrameCount uint32_t idrPeriod uint32_t consecutiveBFrameCount @@ -7112,11 +7112,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 @@ -7160,7 +7160,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - VkVideoEncodeH265RateControlFlagsEXT flags + VkVideoEncodeH265RateControlFlagsEXT flags uint32_t gopFrameCount uint32_t idrPeriod uint32_t consecutiveBFrameCount @@ -8642,6 +8642,11 @@ typedef void* MTLSharedEvent_id; VkExtent2D windowExtent VkBlockMatchWindowCompareModeQCOM windowCompareMode + + VkStructureType sType + void* pNext + VkBool32 descriptorPoolOverallocation + @@ -10364,6 +10369,7 @@ typedef void* MTLSharedEvent_id; + @@ -10406,6 +10412,8 @@ typedef void* MTLSharedEvent_id; + + @@ -10522,6 +10530,8 @@ typedef void* MTLSharedEvent_id; + + @@ -16754,7 +16764,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16798,7 +16808,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16981,7 +16991,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19102,7 +19112,6 @@ typedef void* MTLSharedEvent_id; - @@ -20382,7 +20391,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20414,6 +20423,7 @@ typedef void* MTLSharedEvent_id; + @@ -23269,6 +23279,22 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + +