#define VKAPI_CALL __stdcall
#define VKAPI_PTR VKAPI_CALL
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
- #error "Vulkan isn't supported for the 'armeabi' NDK ABI"
+ #error "Vulkan is not supported for the 'armeabi' NDK ABI"
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
// calling convention, i.e. float parameters are passed in registers. This
# include <span>
#endif
-static_assert( VK_HEADER_VERSION == 200, "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 201, "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for 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
value = true
};
};
+ template <>
+ struct StructExtends<VideoEncodeH264RateControlInfoEXT, VideoEncodeRateControlInfoKHR>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<VideoEncodeH264RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
+ {
+ enum
+ {
+ value = true
+ };
+ };
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
value = true
};
};
+ template <>
+ struct StructExtends<VideoEncodeH265RateControlInfoEXT, VideoEncodeRateControlInfoKHR>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<VideoEncodeH265RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
+ {
+ enum
+ {
+ value = true
+ };
+ };
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
value = true
};
};
+ template <>
+ struct StructExtends<VideoEncodeRateControlLayerInfoKHR, VideoCodingControlInfoKHR>
+ {
+ enum
+ {
+ value = true
+ };
+ };
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NV_device_diagnostics_config ===
};
};
+ //=== VK_ARM_rasterization_order_attachment_access ===
+ template <>
+ struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, PhysicalDeviceFeatures2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM, DeviceCreateInfo>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
//=== VK_EXT_rgba10x6_formats ===
template <>
struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, PhysicalDeviceFeatures2>
typedef enum VkVideoEncodeRateControlFlagBitsKHR {
VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0,
- VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR = 0x00000001,
+ VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR = 0x00000001,
VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
} VkVideoEncodeRateControlFlagBitsKHR;
typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
const VkVideoReferenceSlotKHR* pSetupReferenceSlot;
uint32_t referenceSlotCount;
const VkVideoReferenceSlotKHR* pReferenceSlots;
+ uint32_t precedingExternallyEncodedBytes;
} VkVideoEncodeInfoKHR;
+typedef struct VkVideoEncodeRateControlLayerInfoKHR {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t averageBitrate;
+ uint32_t maxBitrate;
+ uint32_t frameRateNumerator;
+ uint32_t frameRateDenominator;
+ uint32_t virtualBufferSizeInMs;
+ uint32_t initialVirtualBufferSizeInMs;
+} VkVideoEncodeRateControlLayerInfoKHR;
+
typedef struct VkVideoEncodeRateControlInfoKHR {
- VkStructureType sType;
- const void* pNext;
- VkVideoEncodeRateControlFlagsKHR flags;
- VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
- uint32_t averageBitrate;
- uint16_t peakToAverageBitrateRatio;
- uint16_t frameRateNumerator;
- uint16_t frameRateDenominator;
- uint32_t virtualBufferSizeInMs;
+ VkStructureType sType;
+ const void* pNext;
+ VkVideoEncodeRateControlFlagsKHR flags;
+ VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
+ uint8_t layerCount;
+ const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs;
} VkVideoEncodeRateControlInfoKHR;
typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100,
VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200,
VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400,
+ VK_VIDEO_ENCODE_H264_CAPABILITY_OPTIONAL_RC_EXTENSION_STRUCT_BIT_EXT = 0x00000800,
VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH264CapabilityFlagBitsEXT;
typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH264CreateFlagBitsEXT;
typedef VkFlags VkVideoEncodeH264CreateFlagsEXT;
+
+typedef enum VkVideoEncodeH264RateControlStructureFlagBitsEXT {
+ VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
+ VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
+ VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkVideoEncodeH264RateControlStructureFlagBitsEXT;
+typedef VkFlags VkVideoEncodeH264RateControlStructureFlagsEXT;
typedef struct VkVideoEncodeH264CapabilitiesEXT {
VkStructureType sType;
const void* pNext;
const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries;
uint8_t refFinalList1EntryCount;
const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries;
- uint32_t precedingNaluBytes;
- uint8_t minQp;
- uint8_t maxQp;
} VkVideoEncodeH264NaluSliceEXT;
typedef struct VkVideoEncodeH264VclFrameInfoEXT {
StdVideoH264ProfileIdc stdProfileIdc;
} VkVideoEncodeH264ProfileEXT;
+typedef struct VkVideoEncodeH264RateControlInfoEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t gopFrameCount;
+ uint32_t idrPeriod;
+ uint32_t consecutiveBFrameCount;
+ VkVideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure;
+} VkVideoEncodeH264RateControlInfoEXT;
+
+typedef struct VkVideoEncodeH264QpEXT {
+ int32_t qpI;
+ int32_t qpP;
+ int32_t qpB;
+} VkVideoEncodeH264QpEXT;
+
+typedef struct VkVideoEncodeH264FrameSizeEXT {
+ uint32_t frameISize;
+ uint32_t framePSize;
+ uint32_t frameBSize;
+} VkVideoEncodeH264FrameSizeEXT;
+
+typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint8_t temporalLayerId;
+ VkBool32 useInitialRcQp;
+ VkVideoEncodeH264QpEXT initialRcQp;
+ VkBool32 useMinQp;
+ VkVideoEncodeH264QpEXT minQp;
+ VkBool32 useMaxQp;
+ VkVideoEncodeH264QpEXT maxQp;
+ VkBool32 useMaxFrameSize;
+ VkVideoEncodeH264FrameSizeEXT maxFrameSize;
+} VkVideoEncodeH264RateControlLayerInfoEXT;
+
#define VK_EXT_video_encode_h265 1
VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
} VkVideoEncodeH265CtbSizeFlagBitsEXT;
typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
+
+typedef enum VkVideoEncodeH265RateControlStructureFlagBitsEXT {
+ VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0,
+ VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT = 0x00000001,
+ VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT = 0x00000002,
+ VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkVideoEncodeH265RateControlStructureFlagBitsEXT;
+typedef VkFlags VkVideoEncodeH265RateControlStructureFlagsEXT;
typedef struct VkVideoEncodeH265CapabilitiesEXT {
VkStructureType sType;
const void* pNext;
StdVideoH265ProfileIdc stdProfileIdc;
} VkVideoEncodeH265ProfileEXT;
+typedef struct VkVideoEncodeH265RateControlInfoEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t gopFrameCount;
+ uint32_t idrPeriod;
+ uint32_t consecutiveBFrameCount;
+ VkVideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure;
+} VkVideoEncodeH265RateControlInfoEXT;
+
+typedef struct VkVideoEncodeH265QpEXT {
+ int32_t qpI;
+ int32_t qpP;
+ int32_t qpB;
+} VkVideoEncodeH265QpEXT;
+
+typedef struct VkVideoEncodeH265FrameSizeEXT {
+ uint32_t frameISize;
+ uint32_t framePSize;
+ uint32_t frameBSize;
+} VkVideoEncodeH265FrameSizeEXT;
+
+typedef struct VkVideoEncodeH265RateControlLayerInfoEXT {
+ VkStructureType sType;
+ const void* pNext;
+ uint8_t temporalId;
+ VkBool32 useInitialRcQp;
+ VkVideoEncodeH265QpEXT initialRcQp;
+ VkBool32 useMinQp;
+ VkVideoEncodeH265QpEXT minQp;
+ VkBool32 useMaxQp;
+ VkVideoEncodeH265QpEXT maxQp;
+ VkBool32 useMaxFrameSize;
+ VkVideoEncodeH265FrameSizeEXT maxFrameSize;
+} VkVideoEncodeH265RateControlLayerInfoEXT;
+
#define VK_EXT_video_decode_h264 1
#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 200
+#define VK_HEADER_VERSION 201
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT = 1000038009,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT = 1000038010,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT = 1000039000,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT = 1000039009,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT = 1000039010,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT = 1000039011,
+#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000,
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
#ifdef VK_ENABLE_BETA_EXTENSIONS
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
#endif
+#ifdef VK_ENABLE_BETA_EXTENSIONS
+ VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
+#endif
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000,
eVideoEncodeH264NaluSliceEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT,
eVideoEncodeH264EmitPictureParametersEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT,
eVideoEncodeH264ProfileEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT,
+ eVideoEncodeH264RateControlInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT,
+ eVideoEncodeH264RateControlLayerInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT,
eVideoEncodeH265CapabilitiesEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT,
eVideoEncodeH265SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT,
eVideoEncodeH265SessionParametersCreateInfoEXT =
eVideoEncodeH265EmitPictureParametersEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT,
eVideoEncodeH265ProfileEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT,
eVideoEncodeH265ReferenceListsEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT,
+ eVideoEncodeH265RateControlInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT,
+ eVideoEncodeH265RateControlLayerInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT,
eVideoDecodeH264CapabilitiesEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT,
eVideoDecodeH264SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT,
eVideoDecodeH264PictureInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT,
ePhysicalDevicePipelineCreationCacheControlFeaturesEXT =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- eVideoEncodeInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
- eVideoEncodeRateControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
+ eVideoEncodeInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR,
+ eVideoEncodeRateControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR,
+ eVideoEncodeRateControlLayerInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
case StructureType::eVideoEncodeH264NaluSliceEXT: return "VideoEncodeH264NaluSliceEXT";
case StructureType::eVideoEncodeH264EmitPictureParametersEXT: return "VideoEncodeH264EmitPictureParametersEXT";
case StructureType::eVideoEncodeH264ProfileEXT: return "VideoEncodeH264ProfileEXT";
+ case StructureType::eVideoEncodeH264RateControlInfoEXT: return "VideoEncodeH264RateControlInfoEXT";
+ case StructureType::eVideoEncodeH264RateControlLayerInfoEXT: return "VideoEncodeH264RateControlLayerInfoEXT";
case StructureType::eVideoEncodeH265CapabilitiesEXT: return "VideoEncodeH265CapabilitiesEXT";
case StructureType::eVideoEncodeH265SessionCreateInfoEXT: return "VideoEncodeH265SessionCreateInfoEXT";
case StructureType::eVideoEncodeH265SessionParametersCreateInfoEXT:
case StructureType::eVideoEncodeH265EmitPictureParametersEXT: return "VideoEncodeH265EmitPictureParametersEXT";
case StructureType::eVideoEncodeH265ProfileEXT: return "VideoEncodeH265ProfileEXT";
case StructureType::eVideoEncodeH265ReferenceListsEXT: return "VideoEncodeH265ReferenceListsEXT";
+ case StructureType::eVideoEncodeH265RateControlInfoEXT: return "VideoEncodeH265RateControlInfoEXT";
+ case StructureType::eVideoEncodeH265RateControlLayerInfoEXT: return "VideoEncodeH265RateControlLayerInfoEXT";
case StructureType::eVideoDecodeH264CapabilitiesEXT: return "VideoDecodeH264CapabilitiesEXT";
case StructureType::eVideoDecodeH264SessionCreateInfoEXT: return "VideoDecodeH264SessionCreateInfoEXT";
case StructureType::eVideoDecodeH264PictureInfoEXT: return "VideoDecodeH264PictureInfoEXT";
#if defined( VK_ENABLE_BETA_EXTENSIONS )
case StructureType::eVideoEncodeInfoKHR: return "VideoEncodeInfoKHR";
case StructureType::eVideoEncodeRateControlInfoKHR: return "VideoEncodeRateControlInfoKHR";
+ case StructureType::eVideoEncodeRateControlLayerInfoKHR: return "VideoEncodeRateControlLayerInfoKHR";
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV:
return "PhysicalDeviceDiagnosticsConfigFeaturesNV";
eDeblockingFilterEnabled = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
eDeblockingFilterPartial = VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
eMultipleSlicePerFrame = VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
- eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
+ eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT,
+ eOptionalRcExtensionStruct = VK_VIDEO_ENCODE_H264_CAPABILITY_OPTIONAL_RC_EXTENSION_STRUCT_BIT_EXT
};
VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilityFlagBitsEXT value )
case VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
case VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
case VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize: return "EvenlyDistributedSliceSize";
+ case VideoEncodeH264CapabilityFlagBitsEXT::eOptionalRcExtensionStruct: return "OptionalRcExtensionStruct";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
+
+ enum class VideoEncodeH264RateControlStructureFlagBitsEXT : VkVideoEncodeH264RateControlStructureFlagsEXT
+ {
+ eUnknown = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,
+ eFlat = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,
+ eDyadic = VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264RateControlStructureFlagBitsEXT value )
+ {
+ switch ( value )
+ {
+ case VideoEncodeH264RateControlStructureFlagBitsEXT::eUnknown: return "Unknown";
+ case VideoEncodeH264RateControlStructureFlagBitsEXT::eFlat: return "Flat";
+ case VideoEncodeH264RateControlStructureFlagBitsEXT::eDyadic: return "Dyadic";
+ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+ }
+ }
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
}
}
+ enum class VideoEncodeH265RateControlStructureFlagBitsEXT : VkVideoEncodeH265RateControlStructureFlagsEXT
+ {
+ eUnknown = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT,
+ eFlat = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT,
+ eDyadic = VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT
+ };
+
+ VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265RateControlStructureFlagBitsEXT value )
+ {
+ switch ( value )
+ {
+ case VideoEncodeH265RateControlStructureFlagBitsEXT::eUnknown: return "Unknown";
+ case VideoEncodeH265RateControlStructureFlagBitsEXT::eFlat: return "Flat";
+ case VideoEncodeH265RateControlStructureFlagBitsEXT::eDyadic: return "Dyadic";
+ default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+ }
+ }
+
enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
{
};
enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR
{
- eDefault = VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,
- eReset = VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR
+ eDefault = VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR,
+ eReserved0 = VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR
};
VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagBitsKHR value )
switch ( value )
{
case VideoEncodeRateControlFlagBitsKHR::eDefault: return "Default";
- case VideoEncodeRateControlFlagBitsKHR::eReset: return "Reset";
+ case VideoEncodeRateControlFlagBitsKHR::eReserved0: return "Reserved0";
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
}
}
struct cpp_type
{};
+ //=====================
+ //=== Format Traits ===
+ //=====================
+
+ // The texel block size in bytes.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t blockSize( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 12;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 12;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 12;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 24;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 24;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 24;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 5;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT: return 6;
+ case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16EXT: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16EXT: return 2;
+
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ }
+
+ // The number of texels in a texel block.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t texelsPerBlock( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 20;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 20;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 25;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 25;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 30;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 30;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 36;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 36;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 40;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 40;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 48;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 48;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 64;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 64;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 50;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 50;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 60;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 60;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 80;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 80;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 100;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 100;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 120;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 120;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 144;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 144;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlockEXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlockEXT: return 20;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlockEXT: return 25;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlockEXT: return 30;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlockEXT: return 36;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlockEXT: return 40;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlockEXT: return 48;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlockEXT: return 64;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlockEXT: return 50;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlockEXT: return 60;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlockEXT: return 80;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlockEXT: return 100;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlockEXT: return 120;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlockEXT: return 144;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16EXT: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16EXT: return 1;
+
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ }
+
+ // The three-dimensional extent of a texel block.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 std::array<uint8_t, 3> blockExtent( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return { 5, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return { 5, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return { 5, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return { 5, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return { 6, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return { 6, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return { 6, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return { 6, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return { 8, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return { 8, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return { 8, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return { 8, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return { 8, 8, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return { 8, 8, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return { 10, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return { 10, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return { 10, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return { 10, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return { 10, 8, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return { 10, 8, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return { 10, 10, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return { 10, 10, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return { 12, 10, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return { 12, 10, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return { 12, 12, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return { 12, 12, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return { 2, 1, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return { 8, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return { 8, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return { 8, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return { 8, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlockEXT: return { 4, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlockEXT: return { 5, 4, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlockEXT: return { 5, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlockEXT: return { 6, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlockEXT: return { 6, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlockEXT: return { 8, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlockEXT: return { 8, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlockEXT: return { 8, 8, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlockEXT: return { 10, 5, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlockEXT: return { 10, 6, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlockEXT: return { 10, 8, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlockEXT: return { 10, 10, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlockEXT: return { 12, 10, 1 };
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlockEXT: return { 12, 12, 1 };
+
+ default: return { 1, 1, 1 };
+ }
+ }
+
+ // A textual description of the compression scheme, or an empty string if it is not compressed
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 char const * compressionScheme( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return "BC";
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return "ETC2";
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return "ETC2";
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return "ETC2";
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return "ETC2";
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return "ETC2";
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return "ETC2";
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return "EAC";
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return "EAC";
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return "EAC";
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return "EAC";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return "ASTC LDR";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return "PVRTC";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlockEXT: return "ASTC HDR";
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlockEXT: return "ASTC HDR";
+
+ default: return "";
+ }
+ }
+
+ // True, if this format is a compressed one.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool isCompressed( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ return ( *VULKAN_HPP_NAMESPACE::compressionScheme( format ) != 0 );
+ }
+
+ // The number of bits into which the format is packed. A single image element in this format
+ // can be stored in the same space as a scalar type of this bit width.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t packed( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 8;
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 32;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16EXT: return 16;
+ case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16EXT: return 16;
+
+ default: return 0;
+ }
+ }
+
+ // The number of components of this format.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentCount( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8Srgb: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Snorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eD16Unorm: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eS8Uint: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16: return 1;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlockEXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16EXT: return 4;
+ case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16EXT: return 4;
+
+ default: return 0;
+ }
+ }
+
+ // True, if the components of this format are compressed, otherwise false.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 bool componentsAreCompressed( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbUnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbSrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaUnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc1RgbaSrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc2UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc2SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc3UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc3SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc4UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc4SnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc5UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc5SnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HUfloatBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc6HSfloatBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc7UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eBc7SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A1SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eEtc2R8G8B8A8SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12UnormBlock:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SrgbBlock:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppUnormBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppUnormBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppUnormBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppUnormBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc12BppSrgbBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc14BppSrgbBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc22BppSrgbBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::ePvrtc24BppSrgbBlockIMG:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc4x4SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x4SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc5x5SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x5SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc6x6SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x5SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x6SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc8x8SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x5SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x6SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x8SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc10x10SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x10SfloatBlockEXT:
+ case VULKAN_HPP_NAMESPACE::Format::eAstc12x12SfloatBlockEXT: return true;
+ default: return false;
+ }
+ }
+
+ // The number of bits in this component, if not compressed, otherwise 0.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentBits( VULKAN_HPP_NAMESPACE::Format format,
+ uint8_t component )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4UnormPack8:
+ switch ( component )
+ {
+ case 0: return 4;
+ case 1: return 4;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR4G4B4A4UnormPack16:
+ switch ( component )
+ {
+ case 0: return 4;
+ case 1: return 4;
+ case 2: return 4;
+ case 3: return 4;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB4G4R4A4UnormPack16:
+ switch ( component )
+ {
+ case 0: return 4;
+ case 1: return 4;
+ case 2: return 4;
+ case 3: return 4;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR5G6B5UnormPack16:
+ switch ( component )
+ {
+ case 0: return 5;
+ case 1: return 6;
+ case 2: return 5;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB5G6R5UnormPack16:
+ switch ( component )
+ {
+ case 0: return 5;
+ case 1: return 6;
+ case 2: return 5;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR5G5B5A1UnormPack16:
+ switch ( component )
+ {
+ case 0: return 5;
+ case 1: return 5;
+ case 2: return 5;
+ case 3: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB5G5R5A1UnormPack16:
+ switch ( component )
+ {
+ case 0: return 5;
+ case 1: return 5;
+ case 2: return 5;
+ case 3: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA1R5G5B5UnormPack16:
+ switch ( component )
+ {
+ case 0: return 1;
+ case 1: return 5;
+ case 2: return 5;
+ case 3: return 5;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Snorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Sint:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8Srgb:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Snorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Sint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8Srgb:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Snorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Sint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8Srgb:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Snorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Sint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8Srgb:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Snorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Sint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR8G8B8A8Srgb:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Snorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sscaled:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Sint:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8A8Srgb:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UnormPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SnormPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UscaledPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SscaledPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8UintPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SintPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA8B8G8R8SrgbPack32:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UnormPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SnormPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UscaledPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SscaledPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10UintPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2R10G10B10SintPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UnormPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SnormPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UscaledPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SscaledPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10UintPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA2B10G10R10SintPack32:
+ switch ( component )
+ {
+ case 0: return 2;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Snorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Uint:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sint:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16Sfloat:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Snorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Uint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16Sfloat:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Snorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Uint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16Sfloat:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Snorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sscaled:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Uint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR16G16B16A16Sfloat:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32Uint:
+ switch ( component )
+ {
+ case 0: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sint:
+ switch ( component )
+ {
+ case 0: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32Sfloat:
+ switch ( component )
+ {
+ case 0: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Uint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32Sfloat:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Uint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ case 2: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ case 2: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32Sfloat:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ case 2: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Uint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ case 2: return 32;
+ case 3: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ case 2: return 32;
+ case 3: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR32G32B32A32Sfloat:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 32;
+ case 2: return 32;
+ case 3: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64Uint:
+ switch ( component )
+ {
+ case 0: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sint:
+ switch ( component )
+ {
+ case 0: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64Sfloat:
+ switch ( component )
+ {
+ case 0: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Uint:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sint:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64Sfloat:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Uint:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ case 2: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sint:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ case 2: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64Sfloat:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ case 2: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Uint:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ case 2: return 64;
+ case 3: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sint:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ case 2: return 64;
+ case 3: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR64G64B64A64Sfloat:
+ switch ( component )
+ {
+ case 0: return 64;
+ case 1: return 64;
+ case 2: return 64;
+ case 3: return 64;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB10G11R11UfloatPack32:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 11;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eE5B9G9R9UfloatPack32:
+ switch ( component )
+ {
+ case 0: return 9;
+ case 1: return 9;
+ case 2: return 9;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eD16Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eX8D24UnormPack32:
+ switch ( component )
+ {
+ case 0: return 24;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eD32Sfloat:
+ switch ( component )
+ {
+ case 0: return 32;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eS8Uint:
+ switch ( component )
+ {
+ case 0: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eD16UnormS8Uint:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eD24UnormS8Uint:
+ switch ( component )
+ {
+ case 0: return 24;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eD32SfloatS8Uint:
+ switch ( component )
+ {
+ case 0: return 32;
+ case 1: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11UnormBlock:
+ switch ( component )
+ {
+ case 0: return 11;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11SnormBlock:
+ switch ( component )
+ {
+ case 0: return 11;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11UnormBlock:
+ switch ( component )
+ {
+ case 0: return 11;
+ case 1: return 11;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eEacR11G11SnormBlock:
+ switch ( component )
+ {
+ case 0: return 11;
+ case 1: return 11;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8G8R8422Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB8G8R8G8422Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ case 3: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6B10X6A10X6Unorm4Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ case 3: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4B12X4A12X4Unorm4Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ case 3: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ case 3: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ case 3: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16G16R16422Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eB16G16R16G16422Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ case 3: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT:
+ switch ( component )
+ {
+ case 0: return 8;
+ case 1: return 8;
+ case 2: return 8;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT:
+ switch ( component )
+ {
+ case 0: return 10;
+ case 1: return 10;
+ case 2: return 10;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT:
+ switch ( component )
+ {
+ case 0: return 12;
+ case 1: return 12;
+ case 2: return 12;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT:
+ switch ( component )
+ {
+ case 0: return 16;
+ case 1: return 16;
+ case 2: return 16;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA4R4G4B4UnormPack16EXT:
+ switch ( component )
+ {
+ case 0: return 4;
+ case 1: return 4;
+ case 2: return 4;
+ case 3: return 4;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eA4B4G4R4UnormPack16EXT:
+ switch ( component )
+ {
+ case 0: return 4;
+ case 1: return 4;
+ case 2: return 4;
+ case 3: return 4;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+
+ default: return 0;
+ }
+ }
+
+ // The plane this component lies in.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t componentPlaneIndex( VULKAN_HPP_NAMESPACE::Format format,
+ uint8_t component )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT:
+ switch ( component )
+ {
+ case 0: return 0;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 0;
+ }
+
+ default: return 0;
+ }
+ }
+
+ // The number of image planes of this format.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeCount( VULKAN_HPP_NAMESPACE::Format format )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm: return 3;
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return 2;
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT: return 2;
+
+ default: return 1;
+ }
+ }
+
+ // The single-plane format that this plane is compatible with.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_NAMESPACE::Format
+ planeCompatibleFormat( VULKAN_HPP_NAMESPACE::Format format, uint8_t plane )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 2: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR8Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR8G8Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR10X6UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR10X6G10X6Unorm2Pack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR12X4UnormPack16;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR12X4G12X4Unorm2Pack16;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT:
+ switch ( plane )
+ {
+ case 0: return VULKAN_HPP_NAMESPACE::Format::eR16Unorm;
+ case 1: return VULKAN_HPP_NAMESPACE::Format::eR16G16Unorm;
+ default: VULKAN_HPP_ASSERT( false ); return VULKAN_HPP_NAMESPACE::Format::eUndefined;
+ }
+
+ default: VULKAN_HPP_ASSERT( plane == 0 ); return format;
+ }
+ }
+
+ // The relative height of this plane. A value of k means that this plane is 1/k the height of the overall format.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeHeightDivisor( VULKAN_HPP_NAMESPACE::Format format,
+ uint8_t plane )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+
+ default: VULKAN_HPP_ASSERT( plane == 0 ); return 1;
+ }
+ }
+
+ // The relative width of this plane. A value of k means that this plane is 1/k the width of the overall format.
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_14 uint8_t planeWidthDivisor( VULKAN_HPP_NAMESPACE::Format format,
+ uint8_t plane )
+ {
+ switch ( format )
+ {
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R83Plane444Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X63Plane444Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane420Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane422Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X43Plane444Unorm3Pack16:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane420Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ case 2: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane422Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 2;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R163Plane444Unorm:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ case 2: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG8B8R82Plane444UnormEXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+ case VULKAN_HPP_NAMESPACE::Format::eG16B16R162Plane444UnormEXT:
+ switch ( plane )
+ {
+ case 0: return 1;
+ case 1: return 1;
+ default: VULKAN_HPP_ASSERT( false ); return 1;
+ }
+
+ default: VULKAN_HPP_ASSERT( plane == 0 ); return 1;
+ }
+ }
+
template <typename T>
struct IndexTypeValue
{};
VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterEnabled ) |
VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eDeblockingFilterPartial ) |
VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eMultipleSlicePerFrame ) |
- VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize ) |
+ VkFlags( VideoEncodeH264CapabilityFlagBitsEXT::eOptionalRcExtensionStruct )
};
};
result += "MultipleSlicePerFrame | ";
if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
result += "EvenlyDistributedSliceSize | ";
+ if ( value & VideoEncodeH264CapabilityFlagBitsEXT::eOptionalRcExtensionStruct )
+ result += "OptionalRcExtensionStruct | ";
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
+
+ using VideoEncodeH264RateControlStructureFlagsEXT = Flags<VideoEncodeH264RateControlStructureFlagBitsEXT>;
+
+ template <>
+ struct FlagTraits<VideoEncodeH264RateControlStructureFlagBitsEXT>
+ {
+ enum : VkFlags
+ {
+ allFlags = VkFlags( VideoEncodeH264RateControlStructureFlagBitsEXT::eUnknown ) |
+ VkFlags( VideoEncodeH264RateControlStructureFlagBitsEXT::eFlat ) |
+ VkFlags( VideoEncodeH264RateControlStructureFlagBitsEXT::eDyadic )
+ };
+ };
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlStructureFlagsEXT
+ operator|( VideoEncodeH264RateControlStructureFlagBitsEXT bit0,
+ VideoEncodeH264RateControlStructureFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return VideoEncodeH264RateControlStructureFlagsEXT( bit0 ) | bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlStructureFlagsEXT
+ operator&( VideoEncodeH264RateControlStructureFlagBitsEXT bit0,
+ VideoEncodeH264RateControlStructureFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return VideoEncodeH264RateControlStructureFlagsEXT( bit0 ) & bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlStructureFlagsEXT
+ operator^( VideoEncodeH264RateControlStructureFlagBitsEXT bit0,
+ VideoEncodeH264RateControlStructureFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return VideoEncodeH264RateControlStructureFlagsEXT( bit0 ) ^ bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlStructureFlagsEXT
+ operator~( VideoEncodeH264RateControlStructureFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
+ {
+ return ~( VideoEncodeH264RateControlStructureFlagsEXT( bits ) );
+ }
+
+ VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264RateControlStructureFlagsEXT value )
+ {
+ if ( !value )
+ return "{}";
+
+ std::string result;
+ if ( value & VideoEncodeH264RateControlStructureFlagBitsEXT::eFlat )
+ result += "Flat | ";
+ if ( value & VideoEncodeH264RateControlStructureFlagBitsEXT::eDyadic )
+ result += "Dyadic | ";
+
+ return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+ }
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
+
+ using VideoEncodeH265RateControlStructureFlagsEXT = Flags<VideoEncodeH265RateControlStructureFlagBitsEXT>;
+
+ template <>
+ struct FlagTraits<VideoEncodeH265RateControlStructureFlagBitsEXT>
+ {
+ enum : VkFlags
+ {
+ allFlags = VkFlags( VideoEncodeH265RateControlStructureFlagBitsEXT::eUnknown ) |
+ VkFlags( VideoEncodeH265RateControlStructureFlagBitsEXT::eFlat ) |
+ VkFlags( VideoEncodeH265RateControlStructureFlagBitsEXT::eDyadic )
+ };
+ };
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlStructureFlagsEXT
+ operator|( VideoEncodeH265RateControlStructureFlagBitsEXT bit0,
+ VideoEncodeH265RateControlStructureFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return VideoEncodeH265RateControlStructureFlagsEXT( bit0 ) | bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlStructureFlagsEXT
+ operator&( VideoEncodeH265RateControlStructureFlagBitsEXT bit0,
+ VideoEncodeH265RateControlStructureFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return VideoEncodeH265RateControlStructureFlagsEXT( bit0 ) & bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlStructureFlagsEXT
+ operator^( VideoEncodeH265RateControlStructureFlagBitsEXT bit0,
+ VideoEncodeH265RateControlStructureFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
+ {
+ return VideoEncodeH265RateControlStructureFlagsEXT( bit0 ) ^ bit1;
+ }
+
+ VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlStructureFlagsEXT
+ operator~( VideoEncodeH265RateControlStructureFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
+ {
+ return ~( VideoEncodeH265RateControlStructureFlagsEXT( bits ) );
+ }
+
+ VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265RateControlStructureFlagsEXT value )
+ {
+ if ( !value )
+ return "{}";
+
+ std::string result;
+ if ( value & VideoEncodeH265RateControlStructureFlagBitsEXT::eFlat )
+ result += "Flat | ";
+ if ( value & VideoEncodeH265RateControlStructureFlagBitsEXT::eDyadic )
+ result += "Dyadic | ";
+
+ return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+ }
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
{
enum : VkFlags
{
- allFlags =
- VkFlags( VideoEncodeRateControlFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeRateControlFlagBitsKHR::eReset )
+ allFlags = VkFlags( VideoEncodeRateControlFlagBitsKHR::eDefault ) |
+ VkFlags( VideoEncodeRateControlFlagBitsKHR::eReserved0 )
};
};
return "{}";
std::string result;
- if ( value & VideoEncodeRateControlFlagBitsKHR::eReset )
- result += "Reset | ";
+ if ( value & VideoEncodeRateControlFlagBitsKHR::eReserved0 )
+ result += "Reserved0 | ";
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
}
struct VideoEncodeH264DpbSlotInfoEXT;
struct VideoEncodeH264NaluSliceEXT;
struct VideoEncodeH264ProfileEXT;
+ struct VideoEncodeH264RateControlInfoEXT;
+ struct VideoEncodeH264RateControlLayerInfoEXT;
+ struct VideoEncodeH264QpEXT;
+ struct VideoEncodeH264FrameSizeEXT;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
struct VideoEncodeH265NaluSliceEXT;
struct VideoEncodeH265ProfileEXT;
struct VideoEncodeH265ReferenceListsEXT;
+ struct VideoEncodeH265RateControlInfoEXT;
+ struct VideoEncodeH265RateControlLayerInfoEXT;
+ struct VideoEncodeH265QpEXT;
+ struct VideoEncodeH265FrameSizeEXT;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_KHR_video_encode_queue ===
struct VideoEncodeInfoKHR;
struct VideoEncodeRateControlInfoKHR;
+ struct VideoEncodeRateControlLayerInfoKHR;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NV_device_diagnostics_config ===
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
- vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
- vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
+ vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
vkEnumerateDeviceLayerProperties =
return *this;
}
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM &
+ setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM &
+ setRasterizationOrderColorAttachmentAccess(
+ VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderColorAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
+ {
+ rasterizationOrderColorAttachmentAccess = rasterizationOrderColorAttachmentAccess_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM &
+ setRasterizationOrderDepthAttachmentAccess(
+ VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderDepthAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
+ {
+ rasterizationOrderDepthAttachmentAccess = rasterizationOrderDepthAttachmentAccess_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM &
+ setRasterizationOrderStencilAttachmentAccess(
+ VULKAN_HPP_NAMESPACE::Bool32 rasterizationOrderStencilAttachmentAccess_ ) VULKAN_HPP_NOEXCEPT
+ {
+ rasterizationOrderStencilAttachmentAccess = rasterizationOrderStencilAttachmentAccess_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
operator VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM const &() const VULKAN_HPP_NOEXCEPT
{
return *reinterpret_cast<const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM *>( this );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH264FrameSizeEXT
+ {
+ using NativeType = VkVideoEncodeH264FrameSizeEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264FrameSizeEXT( uint32_t frameISize_ = {},
+ uint32_t framePSize_ = {},
+ uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
+ : frameISize( frameISize_ )
+ , framePSize( framePSize_ )
+ , frameBSize( frameBSize_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH264FrameSizeEXT( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264FrameSizeEXT( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH264FrameSizeEXT( *reinterpret_cast<VideoEncodeH264FrameSizeEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH264FrameSizeEXT & operator=( VideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264FrameSizeEXT & operator=( VkVideoEncodeH264FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ frameISize = frameISize_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ framePSize = framePSize_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ frameBSize = frameBSize_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH264FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH264FrameSizeEXT *>( this );
+ }
+
+ operator VkVideoEncodeH264FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH264FrameSizeEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH264FrameSizeEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
+ }
+
+ bool operator!=( VideoEncodeH264FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ uint32_t frameISize = {};
+ uint32_t framePSize = {};
+ uint32_t frameBSize = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT ) ==
+ sizeof( VkVideoEncodeH264FrameSizeEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT>::value,
+ "VideoEncodeH264FrameSizeEXT is not nothrow_move_constructible!" );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
struct VideoEncodeH264NaluSliceEXT
{
using NativeType = VkVideoEncodeH264NaluSliceEXT;
uint8_t refFinalList0EntryCount_ = {},
const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList0Entries_ = {},
uint8_t refFinalList1EntryCount_ = {},
- const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList1Entries_ = {},
- uint32_t precedingNaluBytes_ = {},
- uint8_t minQp_ = {},
- uint8_t maxQp_ = {} ) VULKAN_HPP_NOEXCEPT
+ const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList1Entries_ = {} ) VULKAN_HPP_NOEXCEPT
: pSliceHeaderStd( pSliceHeaderStd_ )
, mbCount( mbCount_ )
, refFinalList0EntryCount( refFinalList0EntryCount_ )
, pRefFinalList0Entries( pRefFinalList0Entries_ )
, refFinalList1EntryCount( refFinalList1EntryCount_ )
, pRefFinalList1Entries( pRefFinalList1Entries_ )
- , precedingNaluBytes( precedingNaluBytes_ )
- , minQp( minQp_ )
- , maxQp( maxQp_ )
{}
VULKAN_HPP_CONSTEXPR
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const &
refFinalList0Entries_,
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT> const &
- refFinalList1Entries_ = {},
- uint32_t precedingNaluBytes_ = {},
- uint8_t minQp_ = {},
- uint8_t maxQp_ = {} )
+ refFinalList1Entries_ = {} )
: pSliceHeaderStd( pSliceHeaderStd_ )
, mbCount( mbCount_ )
, refFinalList0EntryCount( static_cast<uint8_t>( refFinalList0Entries_.size() ) )
, pRefFinalList0Entries( refFinalList0Entries_.data() )
, refFinalList1EntryCount( static_cast<uint8_t>( refFinalList1Entries_.size() ) )
, pRefFinalList1Entries( refFinalList1Entries_.data() )
- , precedingNaluBytes( precedingNaluBytes_ )
- , minQp( minQp_ )
- , maxQp( maxQp_ )
{}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
return *this;
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceEXT &
- setPrecedingNaluBytes( uint32_t precedingNaluBytes_ ) VULKAN_HPP_NOEXCEPT
- {
- precedingNaluBytes = precedingNaluBytes_;
- return *this;
- }
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceEXT & setMinQp( uint8_t minQp_ ) VULKAN_HPP_NOEXCEPT
- {
- minQp = minQp_;
- return *this;
- }
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceEXT & setMaxQp( uint8_t maxQp_ ) VULKAN_HPP_NOEXCEPT
- {
- maxQp = maxQp_;
- return *this;
- }
-# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeH264NaluSliceEXT const &() const VULKAN_HPP_NOEXCEPT
{
( mbCount == rhs.mbCount ) && ( refFinalList0EntryCount == rhs.refFinalList0EntryCount ) &&
( pRefFinalList0Entries == rhs.pRefFinalList0Entries ) &&
( refFinalList1EntryCount == rhs.refFinalList1EntryCount ) &&
- ( pRefFinalList1Entries == rhs.pRefFinalList1Entries ) &&
- ( precedingNaluBytes == rhs.precedingNaluBytes ) && ( minQp == rhs.minQp ) && ( maxQp == rhs.maxQp );
+ ( pRefFinalList1Entries == rhs.pRefFinalList1Entries );
}
bool operator!=( VideoEncodeH264NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList0Entries = {};
uint8_t refFinalList1EntryCount = {};
const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList1Entries = {};
- uint32_t precedingNaluBytes = {};
- uint8_t minQp = {};
- uint8_t maxQp = {};
};
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceEXT ) ==
sizeof( VkVideoEncodeH264NaluSliceEXT ),
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264SessionCreateInfoEXT
+ struct VideoEncodeH264QpEXT
{
- using NativeType = VkVideoEncodeH264SessionCreateInfoEXT;
-
- static const bool allowDuplicate = false;
- static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
- StructureType::eVideoEncodeH264SessionCreateInfoEXT;
+ using NativeType = VkVideoEncodeH264QpEXT;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT(
- VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags_ = {},
- VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs_ = {},
- const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT
- : flags( flags_ )
- , maxPictureSizeInMbs( maxPictureSizeInMbs_ )
- , pStdExtensionVersion( pStdExtensionVersion_ )
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH264QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
+ : qpI( qpI_ )
+ , qpP( qpP_ )
+ , qpB( qpB_ )
{}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT( VideoEncodeH264SessionCreateInfoEXT const & rhs )
- VULKAN_HPP_NOEXCEPT = default;
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264QpEXT( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH264SessionCreateInfoEXT( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
- : VideoEncodeH264SessionCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionCreateInfoEXT const *>( &rhs ) )
+ VideoEncodeH264QpEXT( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH264QpEXT( *reinterpret_cast<VideoEncodeH264QpEXT const *>( &rhs ) )
{}
# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
- VideoEncodeH264SessionCreateInfoEXT &
- operator=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+ VideoEncodeH264QpEXT & operator=( VideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH264SessionCreateInfoEXT &
- operator=( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ VideoEncodeH264QpEXT & operator=( VkVideoEncodeH264QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
{
- *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT const *>( &rhs );
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const *>( &rhs );
return *this;
}
# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
- {
- pNext = pNext_;
- return *this;
- }
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT &
- setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
{
- flags = flags_;
+ qpI = qpI_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT &
- setMaxPictureSizeInMbs( VULKAN_HPP_NAMESPACE::Extent2D const & maxPictureSizeInMbs_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
{
- maxPictureSizeInMbs = maxPictureSizeInMbs_;
+ qpP = qpP_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setPStdExtensionVersion(
- const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
{
- pStdExtensionVersion = pStdExtensionVersion_;
+ qpB = qpB_;
return *this;
}
# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
- operator VkVideoEncodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH264QpEXT const &() const VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT *>( this );
+ return *reinterpret_cast<const VkVideoEncodeH264QpEXT *>( this );
}
- operator VkVideoEncodeH264SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH264QpEXT &() VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT *>( this );
+ return *reinterpret_cast<VkVideoEncodeH264QpEXT *>( this );
}
# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
- auto operator<=>( VideoEncodeH264SessionCreateInfoEXT const & ) const = default;
+ auto operator<=>( VideoEncodeH264QpEXT const & ) const = default;
# else
- bool operator==( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator==( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
- ( maxPictureSizeInMbs == rhs.maxPictureSizeInMbs ) && ( pStdExtensionVersion == rhs.pStdExtensionVersion );
+ return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
}
- bool operator!=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator!=( VideoEncodeH264QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return !operator==( rhs );
}
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionCreateInfoEXT;
- const void * pNext = {};
- VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags = {};
- VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs = {};
- const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion = {};
+ int32_t qpI = {};
+ int32_t qpP = {};
+ int32_t qpB = {};
};
- VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT ) ==
- sizeof( VkVideoEncodeH264SessionCreateInfoEXT ),
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT ) == sizeof( VkVideoEncodeH264QpEXT ),
"struct and wrapper have different size!" );
- VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT>::value,
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT>::value,
"struct wrapper is not a standard layout!" );
- VULKAN_HPP_STATIC_ASSERT(
- std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT>::value,
- "VideoEncodeH264SessionCreateInfoEXT is not nothrow_move_constructible!" );
-
- template <>
- struct CppType<StructureType, StructureType::eVideoEncodeH264SessionCreateInfoEXT>
- {
- using Type = VideoEncodeH264SessionCreateInfoEXT;
- };
+ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT>::value,
+ "VideoEncodeH264QpEXT is not nothrow_move_constructible!" );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH264SessionParametersAddInfoEXT
+ struct VideoEncodeH264RateControlInfoEXT
{
- using NativeType = VkVideoEncodeH264SessionParametersAddInfoEXT;
+ using NativeType = VkVideoEncodeH264RateControlInfoEXT;
static const bool allowDuplicate = false;
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
- StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
+ StructureType::eVideoEncodeH264RateControlInfoEXT;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT(
- uint32_t spsStdCount_ = {},
- const StdVideoH264SequenceParameterSet * pSpsStd_ = {},
- uint32_t ppsStdCount_ = {},
- const StdVideoH264PictureParameterSet * pPpsStd_ = {} ) VULKAN_HPP_NOEXCEPT
- : spsStdCount( spsStdCount_ )
- , pSpsStd( pSpsStd_ )
- , ppsStdCount( ppsStdCount_ )
- , pPpsStd( pPpsStd_ )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlInfoEXT(
+ uint32_t gopFrameCount_ = {},
+ uint32_t idrPeriod_ = {},
+ uint32_t consecutiveBFrameCount_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure_ =
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureFlagBitsEXT::eUnknown ) VULKAN_HPP_NOEXCEPT
+ : gopFrameCount( gopFrameCount_ )
+ , idrPeriod( idrPeriod_ )
+ , consecutiveBFrameCount( consecutiveBFrameCount_ )
+ , rateControlStructure( rateControlStructure_ )
{}
- VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT(
- VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
- VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs )
- VULKAN_HPP_NOEXCEPT
- : VideoEncodeH264SessionParametersAddInfoEXT(
- *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
- {}
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH264RateControlInfoEXT( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
- VideoEncodeH264SessionParametersAddInfoEXT(
- VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_,
- VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ = {} )
- : spsStdCount( static_cast<uint32_t>( spsStd_.size() ) )
- , pSpsStd( spsStd_.data() )
- , ppsStdCount( static_cast<uint32_t>( ppsStd_.size() ) )
- , pPpsStd( ppsStd_.data() )
+ VideoEncodeH264RateControlInfoEXT( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH264RateControlInfoEXT( *reinterpret_cast<VideoEncodeH264RateControlInfoEXT const *>( &rhs ) )
{}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
- VideoEncodeH264SessionParametersAddInfoEXT &
- operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+ VideoEncodeH264RateControlInfoEXT &
+ operator=( VideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH264SessionParametersAddInfoEXT &
- operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ VideoEncodeH264RateControlInfoEXT & operator=( VkVideoEncodeH264RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
{
- *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs );
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const *>( &rhs );
return *this;
}
# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
- setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
- setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT
- {
- spsStdCount = spsStdCount_;
- return *this;
- }
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
- setPSpsStd( const StdVideoH264SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT
- {
- pSpsStd = pSpsStd_;
- return *this;
- }
-
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
- VideoEncodeH264SessionParametersAddInfoEXT &
- setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_ )
- VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT &
+ setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
{
- spsStdCount = static_cast<uint32_t>( spsStd_.size() );
- pSpsStd = spsStd_.data();
+ gopFrameCount = gopFrameCount_;
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
- setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
{
- ppsStdCount = ppsStdCount_;
+ idrPeriod = idrPeriod_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
- setPPpsStd( const StdVideoH264PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT &
+ setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
{
- pPpsStd = pPpsStd_;
+ consecutiveBFrameCount = consecutiveBFrameCount_;
return *this;
}
-# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
- VideoEncodeH264SessionParametersAddInfoEXT &
- setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ )
- VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlInfoEXT & setRateControlStructure(
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure_ ) VULKAN_HPP_NOEXCEPT
{
- ppsStdCount = static_cast<uint32_t>( ppsStd_.size() );
- pPpsStd = ppsStd_.data();
+ rateControlStructure = rateControlStructure_;
return *this;
}
-# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
- operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH264RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
+ return *reinterpret_cast<const VkVideoEncodeH264RateControlInfoEXT *>( this );
}
- operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH264RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
+ return *reinterpret_cast<VkVideoEncodeH264RateControlInfoEXT *>( this );
}
# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
- auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default;
+ auto operator<=>( VideoEncodeH264RateControlInfoEXT const & ) const = default;
# else
- bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator==( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) &&
- ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd );
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( gopFrameCount == rhs.gopFrameCount ) &&
+ ( idrPeriod == rhs.idrPeriod ) && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) &&
+ ( rateControlStructure == rhs.rateControlStructure );
}
- bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator!=( VideoEncodeH264RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return !operator==( rhs );
}
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
- const void * pNext = {};
- uint32_t spsStdCount = {};
- const StdVideoH264SequenceParameterSet * pSpsStd = {};
- uint32_t ppsStdCount = {};
- const StdVideoH264PictureParameterSet * pPpsStd = {};
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlInfoEXT;
+ const void * pNext = {};
+ uint32_t gopFrameCount = {};
+ uint32_t idrPeriod = {};
+ uint32_t consecutiveBFrameCount = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureFlagBitsEXT rateControlStructure =
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlStructureFlagBitsEXT::eUnknown;
};
- VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT ) ==
- sizeof( VkVideoEncodeH264SessionParametersAddInfoEXT ),
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT ) ==
+ sizeof( VkVideoEncodeH264RateControlInfoEXT ),
"struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT>::value,
+ "struct wrapper is not a standard layout!" );
VULKAN_HPP_STATIC_ASSERT(
- std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>::value,
- "struct wrapper is not a standard layout!" );
- VULKAN_HPP_STATIC_ASSERT(
- std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>::value,
- "VideoEncodeH264SessionParametersAddInfoEXT is not nothrow_move_constructible!" );
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT>::value,
+ "VideoEncodeH264RateControlInfoEXT is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlInfoEXT>
+ {
+ using Type = VideoEncodeH264RateControlInfoEXT;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH264RateControlLayerInfoEXT
+ {
+ using NativeType = VkVideoEncodeH264RateControlLayerInfoEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT(
+ uint8_t temporalLayerId_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT initialRcQp_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize_ = {} ) VULKAN_HPP_NOEXCEPT
+ : temporalLayerId( temporalLayerId_ )
+ , useInitialRcQp( useInitialRcQp_ )
+ , initialRcQp( initialRcQp_ )
+ , useMinQp( useMinQp_ )
+ , minQp( minQp_ )
+ , useMaxQp( useMaxQp_ )
+ , maxQp( maxQp_ )
+ , useMaxFrameSize( useMaxFrameSize_ )
+ , maxFrameSize( maxFrameSize_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264RateControlLayerInfoEXT( VideoEncodeH264RateControlLayerInfoEXT const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264RateControlLayerInfoEXT( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH264RateControlLayerInfoEXT(
+ *reinterpret_cast<VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH264RateControlLayerInfoEXT &
+ operator=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264RateControlLayerInfoEXT &
+ operator=( VkVideoEncodeH264RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setTemporalLayerId( uint8_t temporalLayerId_ ) VULKAN_HPP_NOEXCEPT
+ {
+ temporalLayerId = temporalLayerId_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setUseInitialRcQp( VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useInitialRcQp = useInitialRcQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setInitialRcQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & initialRcQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ initialRcQp = initialRcQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useMinQp = useMinQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ minQp = minQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useMaxQp = useMaxQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxQp = maxQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useMaxFrameSize = useMaxFrameSize_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264RateControlLayerInfoEXT &
+ setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxFrameSize = maxFrameSize_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH264RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
+ }
+
+ operator VkVideoEncodeH264RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH264RateControlLayerInfoEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH264RateControlLayerInfoEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( temporalLayerId == rhs.temporalLayerId ) &&
+ ( useInitialRcQp == rhs.useInitialRcQp ) && ( initialRcQp == rhs.initialRcQp ) &&
+ ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
+ ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) &&
+ ( maxFrameSize == rhs.maxFrameSize );
+ }
+
+ bool operator!=( VideoEncodeH264RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264RateControlLayerInfoEXT;
+ const void * pNext = {};
+ uint8_t temporalLayerId = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT initialRcQp = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT minQp = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT maxQp = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT maxFrameSize = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT ) ==
+ sizeof( VkVideoEncodeH264RateControlLayerInfoEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT>::value,
+ "VideoEncodeH264RateControlLayerInfoEXT is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeH264RateControlLayerInfoEXT>
+ {
+ using Type = VideoEncodeH264RateControlLayerInfoEXT;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH264SessionCreateInfoEXT
+ {
+ using NativeType = VkVideoEncodeH264SessionCreateInfoEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eVideoEncodeH264SessionCreateInfoEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT(
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags_ = {},
+ VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs_ = {},
+ const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT
+ : flags( flags_ )
+ , maxPictureSizeInMbs( maxPictureSizeInMbs_ )
+ , pStdExtensionVersion( pStdExtensionVersion_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT( VideoEncodeH264SessionCreateInfoEXT const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264SessionCreateInfoEXT( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH264SessionCreateInfoEXT( *reinterpret_cast<VideoEncodeH264SessionCreateInfoEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH264SessionCreateInfoEXT &
+ operator=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264SessionCreateInfoEXT &
+ operator=( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT &
+ setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+ {
+ flags = flags_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT &
+ setMaxPictureSizeInMbs( VULKAN_HPP_NAMESPACE::Extent2D const & maxPictureSizeInMbs_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxPictureSizeInMbs = maxPictureSizeInMbs_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & setPStdExtensionVersion(
+ const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pStdExtensionVersion = pStdExtensionVersion_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH264SessionCreateInfoEXT *>( this );
+ }
+
+ operator VkVideoEncodeH264SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH264SessionCreateInfoEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH264SessionCreateInfoEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
+ ( maxPictureSizeInMbs == rhs.maxPictureSizeInMbs ) && ( pStdExtensionVersion == rhs.pStdExtensionVersion );
+ }
+
+ bool operator!=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionCreateInfoEXT;
+ const void * pNext = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags = {};
+ VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs = {};
+ const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT ) ==
+ sizeof( VkVideoEncodeH264SessionCreateInfoEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoEXT>::value,
+ "VideoEncodeH264SessionCreateInfoEXT is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeH264SessionCreateInfoEXT>
+ {
+ using Type = VideoEncodeH264SessionCreateInfoEXT;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH264SessionParametersAddInfoEXT
+ {
+ using NativeType = VkVideoEncodeH264SessionParametersAddInfoEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT(
+ uint32_t spsStdCount_ = {},
+ const StdVideoH264SequenceParameterSet * pSpsStd_ = {},
+ uint32_t ppsStdCount_ = {},
+ const StdVideoH264PictureParameterSet * pPpsStd_ = {} ) VULKAN_HPP_NOEXCEPT
+ : spsStdCount( spsStdCount_ )
+ , pSpsStd( pSpsStd_ )
+ , ppsStdCount( ppsStdCount_ )
+ , pPpsStd( pPpsStd_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT(
+ VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs )
+ VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH264SessionParametersAddInfoEXT(
+ *reinterpret_cast<VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs ) )
+ {}
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ VideoEncodeH264SessionParametersAddInfoEXT(
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_,
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ = {} )
+ : spsStdCount( static_cast<uint32_t>( spsStd_.size() ) )
+ , pSpsStd( spsStd_.data() )
+ , ppsStdCount( static_cast<uint32_t>( ppsStd_.size() ) )
+ , pPpsStd( ppsStd_.data() )
+ {}
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH264SessionParametersAddInfoEXT &
+ operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH264SessionParametersAddInfoEXT &
+ operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
+ setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
+ setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ spsStdCount = spsStdCount_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
+ setPSpsStd( const StdVideoH264SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pSpsStd = pSpsStd_;
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ VideoEncodeH264SessionParametersAddInfoEXT &
+ setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264SequenceParameterSet> const & spsStd_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ spsStdCount = static_cast<uint32_t>( spsStd_.size() );
+ pSpsStd = spsStd_.data();
+ return *this;
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
+ setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ ppsStdCount = ppsStdCount_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT &
+ setPPpsStd( const StdVideoH264PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pPpsStd = pPpsStd_;
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ VideoEncodeH264SessionParametersAddInfoEXT &
+ setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const StdVideoH264PictureParameterSet> const & ppsStd_ )
+ VULKAN_HPP_NOEXCEPT
+ {
+ ppsStdCount = static_cast<uint32_t>( ppsStd_.size() );
+ pPpsStd = ppsStd_.data();
+ return *this;
+ }
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
+ }
+
+ operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH264SessionParametersAddInfoEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) &&
+ ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd );
+ }
+
+ bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT;
+ const void * pNext = {};
+ uint32_t spsStdCount = {};
+ const StdVideoH264SequenceParameterSet * pSpsStd = {};
+ uint32_t ppsStdCount = {};
+ const StdVideoH264PictureParameterSet * pPpsStd = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT ) ==
+ sizeof( VkVideoEncodeH264SessionParametersAddInfoEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>::value,
+ "VideoEncodeH264SessionParametersAddInfoEXT is not nothrow_move_constructible!" );
template <>
struct CppType<StructureType, StructureType::eVideoEncodeH264SessionParametersAddInfoEXT>
uint32_t ppsIdEntryCount = {};
const uint8_t * ppsIdEntries = {};
};
- VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersEXT ) ==
- sizeof( VkVideoEncodeH265EmitPictureParametersEXT ),
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersEXT ) ==
+ sizeof( VkVideoEncodeH265EmitPictureParametersEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersEXT>::value,
+ "VideoEncodeH265EmitPictureParametersEXT is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeH265EmitPictureParametersEXT>
+ {
+ using Type = VideoEncodeH265EmitPictureParametersEXT;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH265FrameSizeEXT
+ {
+ using NativeType = VkVideoEncodeH265FrameSizeEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH265FrameSizeEXT( uint32_t frameISize_ = {},
+ uint32_t framePSize_ = {},
+ uint32_t frameBSize_ = {} ) VULKAN_HPP_NOEXCEPT
+ : frameISize( frameISize_ )
+ , framePSize( framePSize_ )
+ , frameBSize( frameBSize_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH265FrameSizeEXT( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265FrameSizeEXT( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH265FrameSizeEXT( *reinterpret_cast<VideoEncodeH265FrameSizeEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH265FrameSizeEXT & operator=( VideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265FrameSizeEXT & operator=( VkVideoEncodeH265FrameSizeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameISize( uint32_t frameISize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ frameISize = frameISize_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFramePSize( uint32_t framePSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ framePSize = framePSize_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265FrameSizeEXT & setFrameBSize( uint32_t frameBSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ frameBSize = frameBSize_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH265FrameSizeEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH265FrameSizeEXT *>( this );
+ }
+
+ operator VkVideoEncodeH265FrameSizeEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH265FrameSizeEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH265FrameSizeEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( frameISize == rhs.frameISize ) && ( framePSize == rhs.framePSize ) && ( frameBSize == rhs.frameBSize );
+ }
+
+ bool operator!=( VideoEncodeH265FrameSizeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ uint32_t frameISize = {};
+ uint32_t framePSize = {};
+ uint32_t frameBSize = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT ) ==
+ sizeof( VkVideoEncodeH265FrameSizeEXT ),
"struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT>::value,
+ "struct wrapper is not a standard layout!" );
VULKAN_HPP_STATIC_ASSERT(
- std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersEXT>::value,
- "struct wrapper is not a standard layout!" );
- VULKAN_HPP_STATIC_ASSERT(
- std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersEXT>::value,
- "VideoEncodeH265EmitPictureParametersEXT is not nothrow_move_constructible!" );
-
- template <>
- struct CppType<StructureType, StructureType::eVideoEncodeH265EmitPictureParametersEXT>
- {
- using Type = VideoEncodeH265EmitPictureParametersEXT;
- };
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT>::value,
+ "VideoEncodeH265FrameSizeEXT is not nothrow_move_constructible!" );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
{}
VULKAN_HPP_CONSTEXPR
- VideoEncodeH265NaluSliceEXT( VideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+ VideoEncodeH265NaluSliceEXT( VideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265NaluSliceEXT( VkVideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH265NaluSliceEXT( *reinterpret_cast<VideoEncodeH265NaluSliceEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH265NaluSliceEXT & operator=( VideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265NaluSliceEXT & operator=( VkVideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT & setCtbCount( uint32_t ctbCount_ ) VULKAN_HPP_NOEXCEPT
+ {
+ ctbCount = ctbCount_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT & setPReferenceFinalLists(
+ const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pReferenceFinalLists = pReferenceFinalLists_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT &
+ setPSliceHeaderStd( const StdVideoEncodeH265SliceHeader * pSliceHeaderStd_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pSliceHeaderStd = pSliceHeaderStd_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH265NaluSliceEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH265NaluSliceEXT *>( this );
+ }
+
+ operator VkVideoEncodeH265NaluSliceEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH265NaluSliceEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH265NaluSliceEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH265NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ctbCount == rhs.ctbCount ) &&
+ ( pReferenceFinalLists == rhs.pReferenceFinalLists ) && ( pSliceHeaderStd == rhs.pSliceHeaderStd );
+ }
+
+ bool operator!=( VideoEncodeH265NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265NaluSliceEXT;
+ const void * pNext = {};
+ uint32_t ctbCount = {};
+ const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsEXT * pReferenceFinalLists = {};
+ const StdVideoEncodeH265SliceHeader * pSliceHeaderStd = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT ) ==
+ sizeof( VkVideoEncodeH265NaluSliceEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT>::value,
+ "VideoEncodeH265NaluSliceEXT is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceEXT>
+ {
+ using Type = VideoEncodeH265NaluSliceEXT;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH265ProfileEXT
+ {
+ using NativeType = VkVideoEncodeH265ProfileEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265ProfileEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {} ) VULKAN_HPP_NOEXCEPT
+ : stdProfileIdc( stdProfileIdc_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH265ProfileEXT( VideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265ProfileEXT( VkVideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH265ProfileEXT( *reinterpret_cast<VideoEncodeH265ProfileEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH265ProfileEXT & operator=( VideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265ProfileEXT & operator=( VkVideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileEXT &
+ setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
+ {
+ stdProfileIdc = stdProfileIdc_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH265ProfileEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH265ProfileEXT *>( this );
+ }
+
+ operator VkVideoEncodeH265ProfileEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH265ProfileEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH265ProfileEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH265ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
+ ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
+ }
+
+ bool operator!=( VideoEncodeH265ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265ProfileEXT;
+ const void * pNext = {};
+ StdVideoH265ProfileIdc stdProfileIdc = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT ) ==
+ sizeof( VkVideoEncodeH265ProfileEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT>::value,
+ "VideoEncodeH265ProfileEXT is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileEXT>
+ {
+ using Type = VideoEncodeH265ProfileEXT;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH265QpEXT
+ {
+ using NativeType = VkVideoEncodeH265QpEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH265QpEXT( int32_t qpI_ = {}, int32_t qpP_ = {}, int32_t qpB_ = {} ) VULKAN_HPP_NOEXCEPT
+ : qpI( qpI_ )
+ , qpP( qpP_ )
+ , qpB( qpB_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR VideoEncodeH265QpEXT( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265QpEXT( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH265QpEXT( *reinterpret_cast<VideoEncodeH265QpEXT const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeH265QpEXT & operator=( VideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeH265QpEXT & operator=( VkVideoEncodeH265QpEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpI( int32_t qpI_ ) VULKAN_HPP_NOEXCEPT
+ {
+ qpI = qpI_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpP( int32_t qpP_ ) VULKAN_HPP_NOEXCEPT
+ {
+ qpP = qpP_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265QpEXT & setQpB( int32_t qpB_ ) VULKAN_HPP_NOEXCEPT
+ {
+ qpB = qpB_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeH265QpEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeH265QpEXT *>( this );
+ }
+
+ operator VkVideoEncodeH265QpEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeH265QpEXT *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeH265QpEXT const & ) const = default;
+# else
+ bool operator==( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( qpI == rhs.qpI ) && ( qpP == rhs.qpP ) && ( qpB == rhs.qpB );
+ }
+
+ bool operator!=( VideoEncodeH265QpEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ int32_t qpI = {};
+ int32_t qpP = {};
+ int32_t qpB = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT ) == sizeof( VkVideoEncodeH265QpEXT ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT>::value,
+ "VideoEncodeH265QpEXT is not nothrow_move_constructible!" );
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeH265RateControlInfoEXT
+ {
+ using NativeType = VkVideoEncodeH265RateControlInfoEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eVideoEncodeH265RateControlInfoEXT;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlInfoEXT(
+ uint32_t gopFrameCount_ = {},
+ uint32_t idrPeriod_ = {},
+ uint32_t consecutiveBFrameCount_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure_ =
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureFlagBitsEXT::eUnknown ) VULKAN_HPP_NOEXCEPT
+ : gopFrameCount( gopFrameCount_ )
+ , idrPeriod( idrPeriod_ )
+ , consecutiveBFrameCount( consecutiveBFrameCount_ )
+ , rateControlStructure( rateControlStructure_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeH265RateControlInfoEXT( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH265NaluSliceEXT( VkVideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT
- : VideoEncodeH265NaluSliceEXT( *reinterpret_cast<VideoEncodeH265NaluSliceEXT const *>( &rhs ) )
+ VideoEncodeH265RateControlInfoEXT( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH265RateControlInfoEXT( *reinterpret_cast<VideoEncodeH265RateControlInfoEXT const *>( &rhs ) )
{}
# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
- VideoEncodeH265NaluSliceEXT & operator=( VideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+ VideoEncodeH265RateControlInfoEXT &
+ operator=( VideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH265NaluSliceEXT & operator=( VkVideoEncodeH265NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ VideoEncodeH265RateControlInfoEXT & operator=( VkVideoEncodeH265RateControlInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
{
- *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT const *>( &rhs );
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const *>( &rhs );
return *this;
}
# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT & setCtbCount( uint32_t ctbCount_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT &
+ setGopFrameCount( uint32_t gopFrameCount_ ) VULKAN_HPP_NOEXCEPT
{
- ctbCount = ctbCount_;
+ gopFrameCount = gopFrameCount_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT & setPReferenceFinalLists(
- const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsEXT * pReferenceFinalLists_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setIdrPeriod( uint32_t idrPeriod_ ) VULKAN_HPP_NOEXCEPT
{
- pReferenceFinalLists = pReferenceFinalLists_;
+ idrPeriod = idrPeriod_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265NaluSliceEXT &
- setPSliceHeaderStd( const StdVideoEncodeH265SliceHeader * pSliceHeaderStd_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT &
+ setConsecutiveBFrameCount( uint32_t consecutiveBFrameCount_ ) VULKAN_HPP_NOEXCEPT
{
- pSliceHeaderStd = pSliceHeaderStd_;
+ consecutiveBFrameCount = consecutiveBFrameCount_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlInfoEXT & setRateControlStructure(
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure_ ) VULKAN_HPP_NOEXCEPT
+ {
+ rateControlStructure = rateControlStructure_;
return *this;
}
# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
- operator VkVideoEncodeH265NaluSliceEXT const &() const VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH265RateControlInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<const VkVideoEncodeH265NaluSliceEXT *>( this );
+ return *reinterpret_cast<const VkVideoEncodeH265RateControlInfoEXT *>( this );
}
- operator VkVideoEncodeH265NaluSliceEXT &() VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH265RateControlInfoEXT &() VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<VkVideoEncodeH265NaluSliceEXT *>( this );
+ return *reinterpret_cast<VkVideoEncodeH265RateControlInfoEXT *>( this );
}
# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
- auto operator<=>( VideoEncodeH265NaluSliceEXT const & ) const = default;
+ auto operator<=>( VideoEncodeH265RateControlInfoEXT const & ) const = default;
# else
- bool operator==( VideoEncodeH265NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator==( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ctbCount == rhs.ctbCount ) &&
- ( pReferenceFinalLists == rhs.pReferenceFinalLists ) && ( pSliceHeaderStd == rhs.pSliceHeaderStd );
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( gopFrameCount == rhs.gopFrameCount ) &&
+ ( idrPeriod == rhs.idrPeriod ) && ( consecutiveBFrameCount == rhs.consecutiveBFrameCount ) &&
+ ( rateControlStructure == rhs.rateControlStructure );
}
- bool operator!=( VideoEncodeH265NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator!=( VideoEncodeH265RateControlInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return !operator==( rhs );
}
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265NaluSliceEXT;
- const void * pNext = {};
- uint32_t ctbCount = {};
- const VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsEXT * pReferenceFinalLists = {};
- const StdVideoEncodeH265SliceHeader * pSliceHeaderStd = {};
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlInfoEXT;
+ const void * pNext = {};
+ uint32_t gopFrameCount = {};
+ uint32_t idrPeriod = {};
+ uint32_t consecutiveBFrameCount = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureFlagBitsEXT rateControlStructure =
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlStructureFlagBitsEXT::eUnknown;
};
- VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT ) ==
- sizeof( VkVideoEncodeH265NaluSliceEXT ),
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT ) ==
+ sizeof( VkVideoEncodeH265RateControlInfoEXT ),
"struct and wrapper have different size!" );
- VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT>::value,
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT>::value,
"struct wrapper is not a standard layout!" );
VULKAN_HPP_STATIC_ASSERT(
- std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceEXT>::value,
- "VideoEncodeH265NaluSliceEXT is not nothrow_move_constructible!" );
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT>::value,
+ "VideoEncodeH265RateControlInfoEXT is not nothrow_move_constructible!" );
template <>
- struct CppType<StructureType, StructureType::eVideoEncodeH265NaluSliceEXT>
+ struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlInfoEXT>
{
- using Type = VideoEncodeH265NaluSliceEXT;
+ using Type = VideoEncodeH265RateControlInfoEXT;
};
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
- struct VideoEncodeH265ProfileEXT
+ struct VideoEncodeH265RateControlLayerInfoEXT
{
- using NativeType = VkVideoEncodeH265ProfileEXT;
+ using NativeType = VkVideoEncodeH265RateControlLayerInfoEXT;
static const bool allowDuplicate = false;
- static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH265ProfileEXT;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR VideoEncodeH265ProfileEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {} ) VULKAN_HPP_NOEXCEPT
- : stdProfileIdc( stdProfileIdc_ )
+ VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT(
+ uint8_t temporalId_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT initialRcQp_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp_ = {},
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize_ = {} ) VULKAN_HPP_NOEXCEPT
+ : temporalId( temporalId_ )
+ , useInitialRcQp( useInitialRcQp_ )
+ , initialRcQp( initialRcQp_ )
+ , useMinQp( useMinQp_ )
+ , minQp( minQp_ )
+ , useMaxQp( useMaxQp_ )
+ , maxQp( maxQp_ )
+ , useMaxFrameSize( useMaxFrameSize_ )
+ , maxFrameSize( maxFrameSize_ )
{}
- VULKAN_HPP_CONSTEXPR
- VideoEncodeH265ProfileEXT( VideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+ VULKAN_HPP_CONSTEXPR VideoEncodeH265RateControlLayerInfoEXT( VideoEncodeH265RateControlLayerInfoEXT const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH265ProfileEXT( VkVideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT
- : VideoEncodeH265ProfileEXT( *reinterpret_cast<VideoEncodeH265ProfileEXT const *>( &rhs ) )
+ VideoEncodeH265RateControlLayerInfoEXT( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeH265RateControlLayerInfoEXT(
+ *reinterpret_cast<VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs ) )
{}
# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
- VideoEncodeH265ProfileEXT & operator=( VideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+ VideoEncodeH265RateControlLayerInfoEXT &
+ operator=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
- VideoEncodeH265ProfileEXT & operator=( VkVideoEncodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ VideoEncodeH265RateControlLayerInfoEXT &
+ operator=( VkVideoEncodeH265RateControlLayerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
{
- *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT const *>( &rhs );
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const *>( &rhs );
return *this;
}
# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
{
pNext = pNext_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265ProfileEXT &
- setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setTemporalId( uint8_t temporalId_ ) VULKAN_HPP_NOEXCEPT
{
- stdProfileIdc = stdProfileIdc_;
+ temporalId = temporalId_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setUseInitialRcQp( VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useInitialRcQp = useInitialRcQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setInitialRcQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & initialRcQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ initialRcQp = initialRcQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setUseMinQp( VULKAN_HPP_NAMESPACE::Bool32 useMinQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useMinQp = useMinQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setMinQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & minQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ minQp = minQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setUseMaxQp( VULKAN_HPP_NAMESPACE::Bool32 useMaxQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useMaxQp = useMaxQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setMaxQp( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & maxQp_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxQp = maxQp_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setUseMaxFrameSize( VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ useMaxFrameSize = useMaxFrameSize_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeH265RateControlLayerInfoEXT &
+ setMaxFrameSize( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & maxFrameSize_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxFrameSize = maxFrameSize_;
return *this;
}
# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
- operator VkVideoEncodeH265ProfileEXT const &() const VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH265RateControlLayerInfoEXT const &() const VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<const VkVideoEncodeH265ProfileEXT *>( this );
+ return *reinterpret_cast<const VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
}
- operator VkVideoEncodeH265ProfileEXT &() VULKAN_HPP_NOEXCEPT
+ operator VkVideoEncodeH265RateControlLayerInfoEXT &() VULKAN_HPP_NOEXCEPT
{
- return *reinterpret_cast<VkVideoEncodeH265ProfileEXT *>( this );
+ return *reinterpret_cast<VkVideoEncodeH265RateControlLayerInfoEXT *>( this );
}
# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
- auto operator<=>( VideoEncodeH265ProfileEXT const & ) const = default;
+ auto operator<=>( VideoEncodeH265RateControlLayerInfoEXT const & ) const = default;
# else
- bool operator==( VideoEncodeH265ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator==( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
- return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) &&
- ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 );
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( temporalId == rhs.temporalId ) &&
+ ( useInitialRcQp == rhs.useInitialRcQp ) && ( initialRcQp == rhs.initialRcQp ) &&
+ ( useMinQp == rhs.useMinQp ) && ( minQp == rhs.minQp ) && ( useMaxQp == rhs.useMaxQp ) &&
+ ( maxQp == rhs.maxQp ) && ( useMaxFrameSize == rhs.useMaxFrameSize ) &&
+ ( maxFrameSize == rhs.maxFrameSize );
}
- bool operator!=( VideoEncodeH265ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ bool operator!=( VideoEncodeH265RateControlLayerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return !operator==( rhs );
}
# endif
public:
- VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265ProfileEXT;
- const void * pNext = {};
- StdVideoH265ProfileIdc stdProfileIdc = {};
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH265RateControlLayerInfoEXT;
+ const void * pNext = {};
+ uint8_t temporalId = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useInitialRcQp = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT initialRcQp = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useMinQp = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT minQp = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxQp = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT maxQp = {};
+ VULKAN_HPP_NAMESPACE::Bool32 useMaxFrameSize = {};
+ VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT maxFrameSize = {};
};
- VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT ) ==
- sizeof( VkVideoEncodeH265ProfileEXT ),
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT ) ==
+ sizeof( VkVideoEncodeH265RateControlLayerInfoEXT ),
"struct and wrapper have different size!" );
- VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT>::value,
- "struct wrapper is not a standard layout!" );
- VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileEXT>::value,
- "VideoEncodeH265ProfileEXT is not nothrow_move_constructible!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT>::value,
+ "VideoEncodeH265RateControlLayerInfoEXT is not nothrow_move_constructible!" );
template <>
- struct CppType<StructureType, StructureType::eVideoEncodeH265ProfileEXT>
+ struct CppType<StructureType, StructureType::eVideoEncodeH265RateControlLayerInfoEXT>
{
- using Type = VideoEncodeH265ProfileEXT;
+ using Type = VideoEncodeH265RateControlLayerInfoEXT;
};
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeInfoKHR;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR(
- VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ = {},
- uint32_t qualityLevel_ = {},
- VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {},
- VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ = {},
- VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ = {},
- VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ = {},
- VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR srcPictureResource_ = {},
- const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_ = {},
- uint32_t referenceSlotCount_ = {},
- const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ = {} ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ = {},
+ uint32_t qualityLevel_ = {},
+ VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {},
+ VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ = {},
+ VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ = {},
+ VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ = {},
+ VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR srcPictureResource_ = {},
+ const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_ = {},
+ uint32_t referenceSlotCount_ = {},
+ const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ = {},
+ uint32_t precedingExternallyEncodedBytes_ = {} ) VULKAN_HPP_NOEXCEPT
: flags( flags_ )
, qualityLevel( qualityLevel_ )
, codedExtent( codedExtent_ )
, pSetupReferenceSlot( pSetupReferenceSlot_ )
, referenceSlotCount( referenceSlotCount_ )
, pReferenceSlots( pReferenceSlots_ )
+ , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
{}
VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR srcPictureResource_,
const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_,
VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR> const &
- referenceSlots_ )
+ referenceSlots_,
+ uint32_t precedingExternallyEncodedBytes_ = {} )
: flags( flags_ )
, qualityLevel( qualityLevel_ )
, codedExtent( codedExtent_ )
, pSetupReferenceSlot( pSetupReferenceSlot_ )
, referenceSlotCount( static_cast<uint32_t>( referenceSlots_.size() ) )
, pReferenceSlots( referenceSlots_.data() )
+ , precedingExternallyEncodedBytes( precedingExternallyEncodedBytes_ )
{}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
return *this;
}
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
-# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR &
+ setPrecedingExternallyEncodedBytes( uint32_t precedingExternallyEncodedBytes_ ) VULKAN_HPP_NOEXCEPT
+ {
+ precedingExternallyEncodedBytes = precedingExternallyEncodedBytes_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
( dstBitstreamBufferOffset == rhs.dstBitstreamBufferOffset ) &&
( dstBitstreamBufferMaxRange == rhs.dstBitstreamBufferMaxRange ) &&
( srcPictureResource == rhs.srcPictureResource ) && ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) &&
- ( referenceSlotCount == rhs.referenceSlotCount ) && ( pReferenceSlots == rhs.pReferenceSlots );
+ ( referenceSlotCount == rhs.referenceSlotCount ) && ( pReferenceSlots == rhs.pReferenceSlots ) &&
+ ( precedingExternallyEncodedBytes == rhs.precedingExternallyEncodedBytes );
}
bool operator!=( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot = {};
uint32_t referenceSlotCount = {};
const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots = {};
+ uint32_t precedingExternallyEncodedBytes = {};
};
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR ) == sizeof( VkVideoEncodeInfoKHR ),
"struct and wrapper have different size!" );
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_ENABLE_BETA_EXTENSIONS )
+ struct VideoEncodeRateControlLayerInfoKHR
+ {
+ using NativeType = VkVideoEncodeRateControlLayerInfoKHR;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType =
+ StructureType::eVideoEncodeRateControlLayerInfoKHR;
+
+# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR
+ VideoEncodeRateControlLayerInfoKHR( uint32_t averageBitrate_ = {},
+ uint32_t maxBitrate_ = {},
+ uint32_t frameRateNumerator_ = {},
+ uint32_t frameRateDenominator_ = {},
+ uint32_t virtualBufferSizeInMs_ = {},
+ uint32_t initialVirtualBufferSizeInMs_ = {} ) VULKAN_HPP_NOEXCEPT
+ : averageBitrate( averageBitrate_ )
+ , maxBitrate( maxBitrate_ )
+ , frameRateNumerator( frameRateNumerator_ )
+ , frameRateDenominator( frameRateDenominator_ )
+ , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
+ , initialVirtualBufferSizeInMs( initialVirtualBufferSizeInMs_ )
+ {}
+
+ VULKAN_HPP_CONSTEXPR VideoEncodeRateControlLayerInfoKHR( VideoEncodeRateControlLayerInfoKHR const & rhs )
+ VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeRateControlLayerInfoKHR( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ : VideoEncodeRateControlLayerInfoKHR( *reinterpret_cast<VideoEncodeRateControlLayerInfoKHR const *>( &rhs ) )
+ {}
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ VideoEncodeRateControlLayerInfoKHR &
+ operator=( VideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ VideoEncodeRateControlLayerInfoKHR &
+ operator=( VkVideoEncodeRateControlLayerInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR const *>( &rhs );
+ return *this;
+ }
+
+# if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR &
+ setAverageBitrate( uint32_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
+ {
+ averageBitrate = averageBitrate_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR &
+ setMaxBitrate( uint32_t maxBitrate_ ) VULKAN_HPP_NOEXCEPT
+ {
+ maxBitrate = maxBitrate_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR &
+ setFrameRateNumerator( uint32_t frameRateNumerator_ ) VULKAN_HPP_NOEXCEPT
+ {
+ frameRateNumerator = frameRateNumerator_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR &
+ setFrameRateDenominator( uint32_t frameRateDenominator_ ) VULKAN_HPP_NOEXCEPT
+ {
+ frameRateDenominator = frameRateDenominator_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR &
+ setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
+ {
+ virtualBufferSizeInMs = virtualBufferSizeInMs_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlLayerInfoKHR &
+ setInitialVirtualBufferSizeInMs( uint32_t initialVirtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
+ {
+ initialVirtualBufferSizeInMs = initialVirtualBufferSizeInMs_;
+ return *this;
+ }
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkVideoEncodeRateControlLayerInfoKHR const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkVideoEncodeRateControlLayerInfoKHR *>( this );
+ }
+
+ operator VkVideoEncodeRateControlLayerInfoKHR &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkVideoEncodeRateControlLayerInfoKHR *>( this );
+ }
+
+# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( VideoEncodeRateControlLayerInfoKHR const & ) const = default;
+# else
+ bool operator==( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( averageBitrate == rhs.averageBitrate ) &&
+ ( maxBitrate == rhs.maxBitrate ) && ( frameRateNumerator == rhs.frameRateNumerator ) &&
+ ( frameRateDenominator == rhs.frameRateDenominator ) &&
+ ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs ) &&
+ ( initialVirtualBufferSizeInMs == rhs.initialVirtualBufferSizeInMs );
+ }
+
+ bool operator!=( VideoEncodeRateControlLayerInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+# endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlLayerInfoKHR;
+ const void * pNext = {};
+ uint32_t averageBitrate = {};
+ uint32_t maxBitrate = {};
+ uint32_t frameRateNumerator = {};
+ uint32_t frameRateDenominator = {};
+ uint32_t virtualBufferSizeInMs = {};
+ uint32_t initialVirtualBufferSizeInMs = {};
+ };
+ VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR ) ==
+ sizeof( VkVideoEncodeRateControlLayerInfoKHR ),
+ "struct and wrapper have different size!" );
+ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR>::value,
+ "struct wrapper is not a standard layout!" );
+ VULKAN_HPP_STATIC_ASSERT(
+ std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR>::value,
+ "VideoEncodeRateControlLayerInfoKHR is not nothrow_move_constructible!" );
+
+ template <>
+ struct CppType<StructureType, StructureType::eVideoEncodeRateControlLayerInfoKHR>
+ {
+ using Type = VideoEncodeRateControlLayerInfoKHR;
+ };
+#endif /*VK_ENABLE_BETA_EXTENSIONS*/
+
+#if defined( VK_ENABLE_BETA_EXTENSIONS )
struct VideoEncodeRateControlInfoKHR
{
using NativeType = VkVideoEncodeRateControlInfoKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlInfoKHR;
# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
- VULKAN_HPP_CONSTEXPR
- VideoEncodeRateControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ = {},
- VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ =
- VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone,
- uint32_t averageBitrate_ = {},
- uint16_t peakToAverageBitrateRatio_ = {},
- uint16_t frameRateNumerator_ = {},
- uint16_t frameRateDenominator_ = {},
- uint32_t virtualBufferSizeInMs_ = {} ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR VideoEncodeRateControlInfoKHR(
+ VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ = {},
+ VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ =
+ VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone,
+ uint8_t layerCount_ = {},
+ const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs_ = {} ) VULKAN_HPP_NOEXCEPT
: flags( flags_ )
, rateControlMode( rateControlMode_ )
- , averageBitrate( averageBitrate_ )
- , peakToAverageBitrateRatio( peakToAverageBitrateRatio_ )
- , frameRateNumerator( frameRateNumerator_ )
- , frameRateDenominator( frameRateDenominator_ )
- , virtualBufferSizeInMs( virtualBufferSizeInMs_ )
+ , layerCount( layerCount_ )
+ , pLayerConfigs( pLayerConfigs_ )
{}
VULKAN_HPP_CONSTEXPR
VideoEncodeRateControlInfoKHR( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT
: VideoEncodeRateControlInfoKHR( *reinterpret_cast<VideoEncodeRateControlInfoKHR const *>( &rhs ) )
{}
-# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ VideoEncodeRateControlInfoKHR(
+ VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_,
+ VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_,
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
+ const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layerConfigs_ )
+ : flags( flags_ )
+ , rateControlMode( rateControlMode_ )
+ , layerCount( static_cast<uint8_t>( layerConfigs_.size() ) )
+ , pLayerConfigs( layerConfigs_.data() )
+ {}
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
VideoEncodeRateControlInfoKHR &
operator=( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
- setAverageBitrate( uint32_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT
- {
- averageBitrate = averageBitrate_;
- return *this;
- }
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
- setPeakToAverageBitrateRatio( uint16_t peakToAverageBitrateRatio_ ) VULKAN_HPP_NOEXCEPT
- {
- peakToAverageBitrateRatio = peakToAverageBitrateRatio_;
- return *this;
- }
-
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
- setFrameRateNumerator( uint16_t frameRateNumerator_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setLayerCount( uint8_t layerCount_ ) VULKAN_HPP_NOEXCEPT
{
- frameRateNumerator = frameRateNumerator_;
+ layerCount = layerCount_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
- setFrameRateDenominator( uint16_t frameRateDenominator_ ) VULKAN_HPP_NOEXCEPT
+ VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & setPLayerConfigs(
+ const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs_ ) VULKAN_HPP_NOEXCEPT
{
- frameRateDenominator = frameRateDenominator_;
+ pLayerConfigs = pLayerConfigs_;
return *this;
}
- VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR &
- setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT
+# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+ VideoEncodeRateControlInfoKHR & setLayerConfigs(
+ VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<
+ const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR> const & layerConfigs_ ) VULKAN_HPP_NOEXCEPT
{
- virtualBufferSizeInMs = virtualBufferSizeInMs_;
+ layerCount = static_cast<uint8_t>( layerConfigs_.size() );
+ pLayerConfigs = layerConfigs_.data();
return *this;
}
-# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+# endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT
{
bool operator==( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
{
return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) &&
- ( rateControlMode == rhs.rateControlMode ) && ( averageBitrate == rhs.averageBitrate ) &&
- ( peakToAverageBitrateRatio == rhs.peakToAverageBitrateRatio ) &&
- ( frameRateNumerator == rhs.frameRateNumerator ) && ( frameRateDenominator == rhs.frameRateDenominator ) &&
- ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs );
+ ( rateControlMode == rhs.rateControlMode ) && ( layerCount == rhs.layerCount ) &&
+ ( pLayerConfigs == rhs.pLayerConfigs );
}
bool operator!=( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT
VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags = {};
VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode =
VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone;
- uint32_t averageBitrate = {};
- uint16_t peakToAverageBitrateRatio = {};
- uint16_t frameRateNumerator = {};
- uint16_t frameRateDenominator = {};
- uint32_t virtualBufferSizeInMs = {};
+ uint8_t layerCount = {};
+ const VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR * pLayerConfigs = {};
};
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR ) ==
sizeof( VkVideoEncodeRateControlInfoKHR ),
--- /dev/null
+#!/usr/bin/python3 -i
+#
+# Copyright 2021 The Khronos Group Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# Generic alias for working group-specific API conventions interface.
+
+# This import should be changed at the repository / working group level to
+# specify the correct API's conventions.
+
+from vkconventions import VulkanConventions as APIConventions
OutputGenerator.beginFeature(self, interface, emit)
# C-specific
# Accumulate includes, defines, types, enums, function pointer typedefs,
- # end function prototypes separately for this feature. They're only
+ # end function prototypes separately for this feature. They are only
# printed in endFeature().
self.sections = {section: [] for section in self.ALL_SECTIONS}
self.feature_not_empty = False
else:
# Replace <apientry /> tags with an APIENTRY-style string
# (from self.genOpts). Copy other text through unchanged.
- # If the resulting text is an empty string, don't emit it.
+ # If the resulting text is an empty string, do not emit it.
body = noneStr(typeElem.text)
for elem in typeElem:
if elem.tag == 'apientry':
def typeMayAlias(self, typeName):
if not self.may_alias:
- # First time we've asked if a type may alias.
- # So, let's populate the set of all names of types that may.
+ # First time we have asked if a type may alias.
+ # So, populate the set of all names of types that may.
# Everyone with an explicit mayalias="true"
self.may_alias = set(typeName
Optionally adds a quantifier (like 'any') before a list of 2 or more,
if specified by fmt.
- Don't edit these defaults, override self.makeProseList().
+ Do not edit these defaults, override self.makeProseList().
"""
- assert(serial_comma) # didn't implement what we didn't need
+ assert(serial_comma) # did not implement what we did not need
if isinstance(fmt, str):
fmt = ProseListFormats.from_string(fmt)
# print('About to translate value =', value, 'type =', type(value))
if needsNum:
numVal = int(value, 0)
- # If there's a non-integer, numeric 'type' attribute (e.g. 'u' or
+ # If there is a non-integer, numeric 'type' attribute (e.g. 'u' or
# 'ull'), append it to the string value.
# t = enuminfo.elem.get('type')
# if t is not None and t != '' and t != 'i' and t != 's':
+ ') found with different values:' + strVal
+ ' and ' + strVal2)
- # Don't add the duplicate to the returned list
+ # Do not add the duplicate to the returned list
continue
elif numVal in valueMap:
# Duplicate value found (such as an alias); report it, but
# Accumulate non-numeric enumerant values separately and append
# them following the numeric values, to allow for aliases.
- # NOTE: this doesn't do a topological sort yet, so aliases of
+ # NOTE: this does not do a topological sort yet, so aliases of
# aliases can still get in the wrong order.
aliasText = ''
# Accumulate non-numeric enumerant values separately and append
# them following the numeric values, to allow for aliases.
- # NOTE: this doesn't do a topological sort yet, so aliases of
+ # NOTE: this does not do a topological sort yet, so aliases of
# aliases can still get in the wrong order.
aliasText = []
self.logMsg('error', 'Allowable range for C enum types is [', minValidValue, ',', maxValidValue, '], but', name, 'has a value outside of this (', strVal, ')\n')
exit(1)
- # Don't track min/max for non-numbers (numVal is None)
+ # Do not track min/max for non-numbers (numVal is None)
if isEnum and numVal is not None and elem.get('extends') is None:
if minName is None:
minName = maxName = name
" {}_RANGE_SIZE{} = ({} - {} + 1),".format(expandPrefix, expandSuffix, maxName, minName)))
# Generate a range-padding value to ensure the enum is 32 bits, but
- # only in code generators, so it doesn't appear in documentation
+ # only in code generators, so it does not appear in documentation
if (self.genOpts.codeGenerator or
self.conventions.generate_max_enum_in_docs):
body.append(" {}_MAX_ENUM{} = 0x7FFFFFFF".format(
def beginFile(self, genOpts):
"""Start a new interface file
- - genOpts - GeneratorOptions controlling what's generated and how"""
+ - genOpts - GeneratorOptions controlling what is generated and how"""
self.genOpts = genOpts
self.should_insert_may_alias_macro = \
self.genOpts.conventions.should_insert_may_alias_macro(self.genOpts)
- emit - actually write to the header only when True"""
self.emit = emit
self.featureName = interface.get('name')
- # If there's an additional 'protect' attribute in the feature, save it
+ # If there is an additional 'protect' attribute in the feature, save it
self.featureExtraProtect = interface.get('protect')
def endFeature(self):
def genRequirements(self, name, mustBeFound = True):
"""Generate text showing what core versions and extensions introduce
- an API. This exists in the base Generator class because it's used by
+ an API. This exists in the base Generator class because it is used by
the shared enumerant-generating interfaces (buildEnumCDecl, etc.).
Here it returns an empty string for most generators, but can be
overridden by e.g. DocGenerator.
return ''
def validateFeature(self, featureType, featureName):
- """Validate we're generating something only inside a `<feature>` tag"""
+ """Validate we are generating something only inside a `<feature>` tag"""
if self.featureName is None:
raise UserWarning('Attempt to generate', featureType,
featureName, 'when not in feature')
return None
def isStructAlwaysValid(self, structname):
- """Try to do check if a structure is always considered valid (i.e. there's no rules to its acceptance)."""
+ """Try to do check if a structure is always considered valid (i.e. there is no rules to its acceptance)."""
# A conventions object is required for this call.
if not self.conventions:
raise RuntimeError("To use isStructAlwaysValid, be sure your options include a Conventions object.")
# Leading text
pdecl += noneStr(proto.text)
tdecl += noneStr(proto.text)
- # For each child element, if it's a <name> wrap in appropriate
+ # For each child element, if it is a <name> wrap in appropriate
# declaration. Otherwise append its contents and tail contents.
for elem in proto:
text = noneStr(elem.text)
from generator import write
from spirvcapgenerator import SpirvCapabilityOutputGenerator
from hostsyncgenerator import HostSynchronizationOutputGenerator
+from formatsgenerator import FormatsOutputGenerator
from pygenerator import PyOutputGenerator
from rubygenerator import RubyOutputGenerator
from reflib import logDiag, logWarn, setLogFile
from reg import Registry
from validitygenerator import ValidityOutputGenerator
-from vkconventions import VulkanConventions
+from apiconventions import APIConventions
# Simple timer functions
protectFile = protect
# An API style conventions object
- conventions = VulkanConventions()
+ conventions = APIConventions()
+
+ defaultAPIName = conventions.xml_api_name
# API include files for spec and ref pages
# Overwrites include subdirectories in spec source tree
filename = 'timeMarker',
directory = directory,
genpath = genpath,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
expandEnumerants = False)
]
- # Python representation of API information, used by scripts that
- # don't need to load the full XML.
+ # Python and Ruby representations of API information, used by scripts
+ # that do not need to load the full XML.
genOpts['api.py'] = [
PyOutputGenerator,
DocGeneratorOptions(
filename = 'api.py',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
reparentEnums = False)
]
- # Ruby representation of API information, used by scripts that
- # don't need to load the full XML.
genOpts['api.rb'] = [
RubyOutputGenerator,
DocGeneratorOptions(
filename = 'api.rb',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
filename = 'timeMarker',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
filename = 'timeMarker',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
filename = 'timeMarker',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = None,
filename = 'timeMarker',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
filename = 'timeMarker',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
reparentEnums = False)
]
+ # Used to generate various format chapter tables
+ genOpts['formatsinc'] = [
+ FormatsOutputGenerator,
+ DocGeneratorOptions(
+ conventions = conventions,
+ filename = 'timeMarker',
+ directory = directory,
+ genpath = None,
+ apiname = defaultAPIName,
+ profile = None,
+ versions = featuresPat,
+ emitversions = featuresPat,
+ defaultExtensions = None,
+ addExtensions = addExtensionsPat,
+ removeExtensions = removeExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ emitFormats = emitFormatsPat,
+ reparentEnums = False)
+ ]
+
# Platform extensions, in their own header files
# Each element of the platforms[] array defines information for
# generating a single platform:
filename = headername,
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = None,
filename = 'vulkan_core.h',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
filename = 'vulkan10.h',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = 'VK_VERSION_1_0',
emitversions = 'VK_VERSION_1_0',
filename = 'vulkan11.h',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = '^VK_VERSION_1_[01]$',
emitversions = '^VK_VERSION_1_[01]$',
filename = 'alias.h',
directory = directory,
genpath = None,
- apiname = 'vulkan',
+ apiname = defaultAPIName,
profile = None,
versions = featuresPat,
emitversions = featuresPat,
parser = argparse.ArgumentParser()
parser.add_argument('-defaultExtensions', action='store',
- default='vulkan',
+ default=APIConventions().xml_api_name,
help='Specify a single class of extensions to add to targets')
parser.add_argument('-extension', action='append',
default=[],
import re
import sys
import xml.etree.ElementTree as etree
-from collections import defaultdict, namedtuple
+from collections import defaultdict, deque, namedtuple
from generator import OutputGenerator, GeneratorOptions, write
-import pdb
+from apiconventions import APIConventions
def apiNameMatch(str, supported):
"""Return whether a required api name matches a pattern specified for an
XML <feature> 'api' attribute or <extension> 'supported' attribute.
- - str - api name such as 'vulkan' or 'openxr'
- - supported - comma-separated list of XML API names"""
+ - str - API name such as 'vulkan' or 'openxr'. May be None, in which
+ case it never matches (this should not happen).
+ - supported - comma-separated list of XML API names. May be None, in
+ which case str always matches (this is the usual case)."""
- return (str is not None and str in supported.split(','))
+ if str is not None:
+ return supported is None or str in supported.split(',')
+ # Fallthrough case - either str is None or the test failed
+ return False
def matchAPIProfile(api, profile, elem):
"""Return whether an API and profile
--------- --------
None None Always matches
'string' None Always matches
- None 'string' Does not match. Can't generate multiple APIs
+ None 'string' Does not match. Cannot generate multiple APIs
or profiles, so if an API/profile constraint
is present, it must be asked for explicitly.
'string' 'string' Strings must match
** In the future, we will allow regexes for the attributes,
not just strings, so that `api="^(gl|gles2)"` will match. Even
- this isn't really quite enough, we might prefer something
+ this is not really quite enough, we might prefer something
like `"gl(core)|gles1(common-lite)"`."""
# Match 'api', if present
elem_api = elem.get('api')
raise UserWarning("No API requested, but 'api' attribute is present with value '"
+ elem_api + "'")
elif api != elem_api:
- # Requested API doesn't match attribute
+ # Requested API does not match attribute
return False
elem_profile = elem.get('profile')
if elem_profile:
raise UserWarning("No profile requested, but 'profile' attribute is present with value '"
+ elem_profile + "'")
elif profile != elem_profile:
- # Requested profile doesn't match attribute
+ # Requested profile does not match attribute
return False
return True
+def stripNonmatchingAPIs(tree, apiName, actuallyDelete = True):
+ """Remove tree Elements with 'api' attributes matching apiName.
+
+ tree - Element at the root of the hierarchy to strip. Only its
+ children can actually be removed, not the tree itself.
+ apiName - string which much match a command-separated component of
+ the 'api' attribute.
+ actuallyDelete - only delete matching elements if True."""
+
+ stack = deque()
+ stack.append(tree)
+
+ while len(stack) > 0:
+ parent = stack.pop()
+
+ for child in parent.findall('*'):
+ api = child.get('api')
+ if api:
+ if not apiNameMatch(apiName, api):
+ if actuallyDelete:
+ parent.remove(child)
+ else:
+ # Add child to the queue
+ stack.append(child)
+
+
class BaseInfo:
"""Base class for information about a registry feature
(type/group/enum/command/API/extension).
if (self.compareKeys(info, 'value', required = True) or
self.compareKeys(info, 'bitpos', required = True)):
# If both specify the same value or bit position,
- # they're equal
+ # they are equal
return True
elif (self.compareKeys(info, 'extnumber') and
self.compareKeys(info, 'offset') and
self.compareKeys(info, 'dir')):
- # If both specify the same relative offset, they're equal
+ # If both specify the same relative offset, they are equal
return True
elif (self.compareKeys(info, 'alias')):
# If both are aliases of the same value
else:
return False
else:
- # The same enum can't extend two different types
+ # The same enum cannot extend two different types
return False
else:
# Non-<enum>s should never be redefined
enumerant offsets. <feature> features do not have extension
numbers and are assigned number 0."""
- # If there's no 'number' attribute, use 0, so sorting works
+ # If there is no 'number' attribute, use 0, so sorting works
if self.number is None:
self.number = 0
self.supported = elem.get('supported')
"Output generator used to write headers / messages"
if genOpts is None:
- self.genOpts = GeneratorOptions()
+ # If no generator is provided, we may still need the XML API name
+ # (for example, in genRef.py).
+ self.genOpts = GeneratorOptions(apiname = APIConventions().xml_api_name)
else:
self.genOpts = genOpts
"Options controlling features to write and how to format them"
# This must be the Element for the root <registry>
self.reg = self.tree.getroot()
+ # Preprocess the tree by removing all elements with non-matching
+ # 'api' attributes by breadth-first tree traversal.
+ # This is a blunt hammer, but eliminates the need to track and test
+ # the apis deeper in processing to select the correct elements and
+ # avoid duplicates.
+ # Schema validation should prevent duplicate elements with
+ # overlapping api attributes, or where one element has an api
+ # attribute and the other does not.
+
+ stripNonmatchingAPIs(self.reg, self.genOpts.apiname)
+
# Create dictionary of registry types from toplevel <types> tags
# and add 'name' attribute to each <type> tag (where missing)
# based on its <name> element.
#
- # There's usually one <types> block; more are OK
+ # There is usually one <types> block; more are OK
# Required <type> attributes: 'name' or nested <name> tag contents
self.typedict = {}
for type_elem in self.reg.findall('types/type'):
- # If the <type> doesn't already have a 'name' attribute, set
+ # If the <type> does not already have a 'name' attribute, set
# it from contents of its <name> tag.
if type_elem.get('name') is None:
type_elem.set('name', type_elem.find('name').text)
# Create dictionary of registry enum groups from <enums> tags.
#
# Required <enums> attributes: 'name'. If no name is given, one is
- # generated, but that group can't be identified and turned into an
- # enum type definition - it's just a container for <enum> tags.
+ # generated, but that group cannot be identified and turned into an
+ # enum type definition - it is just a container for <enum> tags.
self.groupdict = {}
for group in self.reg.findall('enums'):
self.addElementInfo(group, GroupInfo(group), 'group', self.groupdict)
# and add 'name' attribute to each <command> tag (where missing)
# based on its <proto><name> element.
#
- # There's usually only one <commands> block; more are OK.
+ # There is usually only one <commands> block; more are OK.
# Required <command> attributes: 'name' or <proto><name> tag contents
self.cmddict = {}
# List of commands which alias others. Contains
# for each alias
cmdAlias = []
for cmd in self.reg.findall('commands/command'):
- # If the <command> doesn't already have a 'name' attribute, set
+ # If the <command> does not already have a 'name' attribute, set
# it from contents of its <proto><name> tag.
name = cmd.get('name')
if name is None:
# Instead, generateRequiredInterface ignores <enum> elements
# that extend enumerated types.
#
- # For <enum> tags which are actually just constants, if there's
+ # For <enum> tags which are actually just constants, if there is
# no 'extends' tag but there is a 'value' or 'bitpos' tag, just
# add an EnumInfo record to the dictionary. That works because
# output generation of constants is purely dependency-based, and
- # doesn't need to iterate through the XML tags.
+ # does not need to iterate through the XML tags.
for elem in feature.findall('require'):
for enum in elem.findall('enum'):
addEnumInfo = False
for parent in parentStructs.split(','):
# self.gen.logMsg('diag', type.get('name'), 'extends', parent)
self.validextensionstructs[parent].append(type_elem.get('name'))
- # Sort the lists so they don't depend on the XML order
+ # Sort the lists so they do not depend on the XML order
for parent in self.validextensionstructs:
self.validextensionstructs[parent].sort()
if depname:
self.gen.logMsg('diag', 'Generating dependent type',
depname, 'for', attrib_name, 'type', typename)
- # Don't recurse on self-referential structures.
+ # Do not recurse on self-referential structures.
if typename != depname:
self.markTypeRequired(depname, required)
else:
if enum is not None:
# If the enum is part of a group, and is being removed, then
# look it up in that <group> tag and remove it there, so that it
- # isn't visible to generators (which traverse the <group> tag
+ # is not visible to generators (which traverse the <group> tag
# elements themselves).
- # This isn't the most robust way of doing this, since a removed
- # enum that's later required again will no longer have a group
+ # This is not the most robust way of doing this, since a removed
+ # enum that is later required again will no longer have a group
# element, but it makes the change non-intrusive on generator
# code.
if required is False:
# Loop over types, enums, and commands in the tag
# @@ It would be possible to respect 'api' and 'profile' attributes
- # in individual features, but that's not done yet.
+ # in individual features, but that is not done yet.
for typeElem in feature.findall('type'):
self.markTypeRequired(typeElem.get('name'), required)
for enumElem in feature.findall('enum'):
typeinfo = self.lookupElementInfo(typename, self.typedict)
if typeinfo:
- # Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible.
+ # Remove aliases in the same extension/feature; these are always added as a correction. Do not need the original to be visible.
alias = self.getAlias(typeElem, self.typedict)
if not self.checkForCorrectionAliases(alias, require, 'type'):
# Resolve the type info to the actual type, so we get an accurate read for 'structextends'
enumname = enumElem.get('name')
typeinfo = self.lookupElementInfo(enumname, self.enumdict)
- # Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible.
+ # Remove aliases in the same extension/feature; these are always added as a correction. Do not need the original to be visible.
alias = self.getAlias(enumElem, self.enumdict)
if not self.checkForCorrectionAliases(alias, require, 'enum'):
enumextends = enumElem.get('extends')
self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
for cmdElem in require.findall('command'):
- # Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible.
+ # Remove aliases in the same extension/feature; these are always added as a correction. Do not need the original to be visible.
alias = self.getAlias(cmdElem, self.cmddict)
if not self.checkForCorrectionAliases(alias, require, 'command'):
if not required_key in self.gen.featureDictionary[featurename]['command']:
'returning!')
return
- # If feature isn't required, or has already been declared, return
+ # If feature is not required, or has already been declared, return
if not f.required:
self.gen.logMsg('diag', 'Skipping', ftype, fname, '(not required)')
return
# @ The enum group is not ready for generation. At this
# @ point, it contains all <enum> tags injected by
# @ <extension> tags without any verification of whether
- # @ they're required or not. It may also contain
+ # @ they are required or not. It may also contain
# @ duplicates injected by multiple consistent
# @ definitions of an <enum>.
if required:
# Mark this element as required (in the element, not the EnumInfo)
elem.set('required', 'true')
- # If it's an alias, track that for later use
+ # If it is an alias, track that for later use
enumAlias = elem.get('alias')
if enumAlias:
enumAliases.append(enumAlias)
for t in features.findall('type'):
self.generateFeature(t.get('name'), 'type', self.typedict)
for e in features.findall('enum'):
- # If this is an enum extending an enumerated type, don't
+ # If this is an enum extending an enumerated type, do not
# generate it - this has already been done in reg.parseTree,
# by copying this element into the enumerated type.
enumextends = e.get('extends')
##print('\t**STRIPPING API {} from {}'.format(api, key))
# Update the attribute after stripping stuff.
- # Could sort apis before joining, but it's not a clear win
+ # Could sort apis before joining, but it is not a clear win
if stripped:
eleminfo.elem.set(attribute, ','.join(apis))
# this has never been done. The 20% or so build-time speedup that
# might result is not worth the effort to make it actually work.
#
- #@@ self.apiReset()
+ # self.apiReset()
# Compile regexps used to select versions & extensions
regVersions = re.compile(self.genOpts.versions)
# Include additional extensions if the extension name matches
# the regexp specified in the generator options. This allows
- # forcing extensions into an interface even if they're not
+ # forcing extensions into an interface even if they are not
# tagged appropriately in the registry.
# However we still respect the 'supported' attribute.
if regAddExtensions.match(extName) is not None:
include = True
# Remove extensions if the name matches the regexp specified
# in generator options. This allows forcing removal of
- # extensions from an interface even if they're tagged that
+ # extensions from an interface even if they are tagged that
# way in the registry.
if regRemoveExtensions.match(extName) is not None:
self.gen.logMsg('diag', 'Removing extension',
'for emission (does not match emitextensions pattern)')
# Hack - can be removed when validity generator goes away
- # (Jon) I'm not sure what this does, or if it should respect
- # the ei.emit flag above.
+ # (Jon) I am not sure what this does, or if it should
+ # respect the ei.emit flag above.
self.requiredextensions.append(extName)
else:
self.gen.logMsg('diag', 'NOT including extension',
# <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormPreserveFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
# Pass 2: loop over specified API versions and extensions printing
- # declarations for required things which haven't already been
+ # declarations for required things which have not already been
# generated.
self.gen.logMsg('diag', 'PASS 2: GENERATE INTERFACES FOR FEATURES')
self.gen.beginFile(self.genOpts)
self.gen.logMsg('diag', 'PASS 2: NOT declaring feature',
f.elem.get('name'), 'because it is not tagged for emission')
# Generate the interface (or just tag its elements as having been
- # emitted, if they haven't been).
+ # emitted, if they have not been).
self.gen.beginFeature(f.elem, emit)
self.generateRequiredInterface(f.elem)
self.gen.endFeature()
{
"version info": {
"schema version": 2,
- "api version": "1.2.200",
- "comment": "from git branch: github-main commit: 9ed8caef1a0b5abe9778adb39feff435b2328f1b",
- "date": "2021-11-23 15:34:18Z"
+ "api version": "1.2.201",
+ "comment": "from git branch: github-main commit: d70e01c0be7b8a7d20b186b30b29a75b18bba75d",
+ "date": "2021-12-01 02:18:40Z"
},
"validation": {
"vkGetInstanceProcAddr": {
},
{
"vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
- "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfoEXT\">VkDevicePrivateDataCreateInfoEXT</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeaturesKHR\">VkPhysicalDeviceDynamicRenderingFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT\">VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeaturesEXT\">VkPhysicalDeviceImageRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance4FeaturesKHR\">VkPhysicalDeviceMaintenance4FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT\">VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeaturesEXT\">VkPhysicalDevicePrivateDataFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR\">VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR\">VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeaturesEXT\">VkPhysicalDeviceSubgroupSizeControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSynchronization2FeaturesKHR\">VkPhysicalDeviceSynchronization2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT\">VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePrivateDataCreateInfoEXT\">VkDevicePrivateDataCreateInfoEXT</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesNV\">VkPhysicalDeviceComputeShaderDerivativesFeaturesNV</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeaturesKHR\">VkPhysicalDeviceDynamicRenderingFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT\">VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeaturesEXT\">VkPhysicalDeviceImageRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesEXT\">VkPhysicalDeviceIndexTypeUint8FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeaturesEXT\">VkPhysicalDeviceInlineUniformBlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesEXT\">VkPhysicalDeviceLineRasterizationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMaintenance4FeaturesKHR\">VkPhysicalDeviceMaintenance4FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE\">VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT\">VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeaturesEXT\">VkPhysicalDevicePrivateDataFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR\">VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR\">VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeaturesEXT\">VkPhysicalDeviceSubgroupSizeControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSynchronization2FeaturesKHR\">VkPhysicalDeviceSynchronization2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT\">VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT\">VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR</a>"
},
{
"vuid": "VUID-VkDeviceCreateInfo-sType-unique",
"text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, the height of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to <span class=\"eq\"><code>renderArea.offset.y</code> + <code>renderArea.extent.height</code></span>"
},
{
- "vuid": "VUID-VkRenderingInfoKHR-pNext-06081",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the <code>offset.x</code> member of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderingInfoKHR-pNext-06082",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the <code>offset.y</code> member of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
"vuid": "VUID-VkRenderingInfoKHR-pNext-06083",
"text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the width of the <code>imageView</code> member of any element of <code>pColorAttachments</code>, <code>pDepthAttachment</code>, or <code>pStencilAttachment</code> that is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a> <strong class=\"purple\">must</strong> be greater than or equal to the sum of the <code>offset.x</code> and <code>extent.width</code> members of each element of <code>pDeviceRenderAreas</code>"
},
"core": [
{
"vuid": "VUID-VkRenderPassCreateInfo-attachment-00834",
- "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+ "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
},
{
"vuid": "VUID-VkRenderPassCreateInfo-pAttachments-00836",
"text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
+ "(VK_EXT_fragment_density_map)": [
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo-fragmentDensityMapAttachment-06471",
+ "text": " If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_maintenance2)": [
{
"vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01566",
"VkRenderPassFragmentDensityMapCreateInfoEXT": {
"(VK_EXT_fragment_density_map)": [
{
- "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02547",
- "text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> be less than <code>VkRenderPassCreateInfo</code>::<code>attachmentCount</code>"
- },
- {
"vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548",
"text": " If <code>fragmentDensityMapAttachment</code> is not <code>VK_ATTACHMENT_UNUSED</code>, <code>fragmentDensityMapAttachment</code> <strong class=\"purple\">must</strong> not be an element of <code>VkSubpassDescription</code>::<code>pInputAttachments</code>, <code>VkSubpassDescription</code>::<code>pColorAttachments</code>, <code>VkSubpassDescription</code>::<code>pResolveAttachments</code>, <code>VkSubpassDescription</code>::<code>pDepthStencilAttachment</code>, or <code>VkSubpassDescription</code>::<code>pPreserveAttachments</code> for any subpass"
},
"text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pResolveAttachments</code> is not <code>NULL</code>, then each resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
},
{
- "vuid": "VUID-VkSubpassDescription-flags-03342",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pDepthStencilResolveAttachmentKHR</code> is not <code>NULL</code>, then the depth/stencil resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
- },
- {
"vuid": "VUID-VkSubpassDescription-flags-03343",
"text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain"
}
},
{
"vuid": "VUID-VkRenderPassCreateInfo2-attachment-03051",
- "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any given element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+ "text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code>, <code>pColorAttachments</code>, <code>pResolveAttachments</code> or <code>pDepthStencilAttachment</code>, or any element of <code>pPreserveAttachments</code> in any given element of <code>pSubpasses</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then it <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
},
{
"vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02522",
"text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_fragment_density_map)": [
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472",
+ "text": " If the pNext chain includes a <a href=\"#VkRenderPassFragmentDensityMapCreateInfoEXT\">VkRenderPassFragmentDensityMapCreateInfoEXT</a> structure and the <code>fragmentDensityMapAttachment</code> member is not <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-06473",
+ "text": " If the <code>pSubpasses</code> pNext chain includes a <a href=\"#VkSubpassDescriptionDepthStencilResolve\">VkSubpassDescriptionDepthStencilResolve</a> structure and the <code>pDepthStencilResolveAttachment</code> member is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, then <code>attachment</code> <strong class=\"purple\">must</strong> be less than <code>attachmentCount</code>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [
{
"vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04585",
},
{
"vuid": "VUID-VkRenderPassCreateInfo2-flags-04908",
- "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pDepthStencilResolveAttachmentKHR</code> is not <code>NULL</code>, then the depth/stencil resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
+ "text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, and if <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code>, then the depth/stencil resolve attachment <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
},
{
"vuid": "VUID-VkRenderPassCreateInfo2-flags-04909",
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177",
- "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not have the value <code>VK_ATTACHMENT_UNUSED</code>"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> not be <code>NULL</code> or have the value <code>VK_ATTACHMENT_UNUSED</code>"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178",
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a depth component with the same number of bits and numerical type"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a depth component with the same number of bits and numerical type"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a stencil component with the same number of bits and numerical type"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, and <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilAttachment</code> <strong class=\"purple\">must</strong> have a stencil component with the same number of bits and numerical type"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183",
- "text": " The value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, then the value of <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedDepthResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184",
- "text": " The value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code> and the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, then the value of <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be one of the bits set in <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>supportedStencilResolveModes</code> or <code>VK_RESOLVE_MODE_NONE</code>"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code>, and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_FALSE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-04588",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a depth component, <code>depthResolveMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkResolveModeFlagBits\">VkResolveModeFlagBits</a> value"
- },
- {
- "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-04589",
- "text": " If the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has a stencil component, <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkResolveModeFlagBits\">VkResolveModeFlagBits</a> value"
+ "text": " If <code>pDepthStencilResolveAttachment</code> is not <code>NULL</code> and does not have the value <code>VK_ATTACHMENT_UNUSED</code>, the <a href=\"#VkFormat\">VkFormat</a> of <code>pDepthStencilResolveAttachment</code> has both depth and stencil components, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolve</code> is <code>VK_FALSE</code> and <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>::<code>independentResolveNone</code> is <code>VK_TRUE</code>, then the values of <code>depthResolveMode</code> and <code>stencilResolveMode</code> <strong class=\"purple\">must</strong> be identical or one of them <strong class=\"purple\">must</strong> be <code>VK_RESOLVE_MODE_NONE</code>"
},
{
"vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType",
"text": " If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <span class=\"eq\"><code>renderArea.offset.y</code> + <code>renderArea.extent.height</code></span> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>height</code> the <code>framebuffer</code> was created with"
},
{
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02854",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the <code>offset.x</code> member of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
- "vuid": "VUID-VkRenderPassBeginInfo-pNext-02855",
- "text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, the <code>offset.y</code> member of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be greater than or equal to 0"
- },
- {
"vuid": "VUID-VkRenderPassBeginInfo-pNext-02856",
"text": " If the <code>pNext</code> chain contains <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>, <span class=\"eq\"><code>offset.x</code> + <code>extent.width</code></span> of each element of <code>pDeviceRenderAreas</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>width</code> the <code>framebuffer</code> was created with"
},
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDraw-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDraw-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDraw-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDraw-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDraw-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDraw-None-02698",
],
"(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDraw-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDraw-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDraw-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDraw-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDraw-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDraw-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDraw-imageView-06172",
"vuid": "VUID-vkCmdDraw-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDraw-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDraw-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDraw-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDraw-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDraw-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"vkCmdDrawIndexed": {
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexed-None-02698",
],
"(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawIndexed-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawIndexed-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawIndexed-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndexed-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexed-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndexed-imageView-06172",
"vuid": "VUID-vkCmdDrawIndexed-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexed-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"vkCmdDrawMultiEXT": {
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "(VK_EXT_multi_draw)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_EXT_multi_draw)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_EXT_multi_draw)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-None-02698",
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawMultiEXT-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawMultiEXT-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiEXT-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_EXT_multi_draw)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMultiEXT-imageView-06172",
"vuid": "VUID-vkCmdDrawMultiEXT-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiEXT-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"vkCmdDrawMultiIndexedEXT": {
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "(VK_EXT_multi_draw)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_EXT_multi_draw)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_EXT_multi_draw)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_EXT_multi_draw)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-02698",
],
"(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_EXT_multi_draw)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-imageView-06172",
"vuid": "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_EXT_multi_draw)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawMultiIndexedEXT-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"vkCmdDrawIndirect": {
"text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirect-None-02698",
],
"(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawIndirect-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawIndirect-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawIndirect-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndirect-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirect-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndirect-imageView-06172",
"vuid": "VUID-vkCmdDrawIndirect-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirect-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"VkDrawIndirectCommand": {
"text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-02698",
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawIndirectCount-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndirectCount-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectCount-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-imageView-06172",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectCount-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
{
"vuid": "VUID-vkCmdDrawIndirectCount-None-04445",
"text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698",
],
"(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndexedIndirect-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirect-imageView-06172",
"vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirect-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"VkDrawIndexedIndirectCommand": {
"text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698",
],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-imageView-06172",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_draw_indirect_count)+(VK_VERSION_1_2)": [
{
"vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
"text": " Both of <code>commandBuffer</code>, and <code>counterBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_EXT_transform_feedback)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_EXT_transform_feedback)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_EXT_transform_feedback)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_EXT_transform_feedback)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_EXT_transform_feedback)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698",
],
"(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_EXT_transform_feedback)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_EXT_transform_feedback)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172",
"vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_transform_feedback)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_EXT_transform_feedback)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
]
},
"vkCmdBeginConditionalRenderingEXT": {
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "(VK_NV_mesh_shader)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_mesh_shader)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_mesh_shader)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_mesh_shader)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698",
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419",
"text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> and <a href=\"#vkCmdSetScissorWithCountEXT\">vkCmdSetScissorWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCountEXT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
}
],
"(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
],
"(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksNV-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-logicOp-04878",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_NV_mesh_shader)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksNV-imageView-06172",
"vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_NV_mesh_shader)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksNV-stage-06480",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+ }
]
},
"vkCmdDrawMeshTasksIndirectNV": {
"text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_NV_mesh_shader)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_mesh_shader)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_mesh_shader)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_mesh_shader)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698",
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419",
"text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> and <a href=\"#vkCmdSetScissorWithCountEXT\">vkCmdSetScissorWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCountEXT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
}
],
"(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
],
"(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_NV_mesh_shader)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172",
"vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
+ ],
+ "(VK_NV_mesh_shader)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+ }
]
},
"VkDrawMeshTasksIndirectCommandNV": {
"text": " Each of <code>buffer</code>, <code>commandBuffer</code>, and <code>countBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_NV_mesh_shader)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_mesh_shader)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_mesh_shader)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_mesh_shader)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_mesh_shader)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698",
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419",
"text": " If the bound graphics pipeline state was created with both the <code>VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic states enabled then both <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> and <a href=\"#vkCmdSetScissorWithCountEXT\">vkCmdSetScissorWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> match the <code>scissorCount</code> parameter of <code>vkCmdSetScissorWithCountEXT</code>"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveTopology-03420",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveTopologyEXT\">vkCmdSetPrimitiveTopologyEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>primitiveTopology</code> parameter of <code>vkCmdSetPrimitiveTopologyEXT</code> <strong class=\"purple\">must</strong> be of the same <a href=\"#drawing-primitive-topology-class\">topology class</a> as the pipeline <a href=\"#VkPipelineInputAssemblyStateCreateInfo\">VkPipelineInputAssemblyStateCreateInfo</a>::<code>topology</code> state"
}
],
"(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [
],
"(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04879",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
],
"(VK_NV_mesh_shader)+(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_mesh_shader)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_NV_mesh_shader)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
],
+ "(VK_NV_mesh_shader)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_VERTEX_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code>, <code>VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</code> or <code>VK_SHADER_STAGE_GEOMETRY_BIT</code>"
+ }
+ ],
"(VK_NV_mesh_shader)+(VK_VERSION_1_2)": [
{
"vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445",
"text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
}
],
+ "!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDispatch-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDispatch-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDispatch-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDispatch-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatch-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatch-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatch-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatch-None-02698",
"text": " Both of <code>buffer</code>, and <code>commandBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDispatchIndirect-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDispatchIndirect-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchIndirect-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatchIndirect-None-02698",
"text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
}
],
+ "(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDispatchBase-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdDispatchBase-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_device_group)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdDispatchBase-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_VERSION_1_1,VK_KHR_device_group)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdDispatchBase-None-02698",
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "(VK_HUAWEI_subpass_shading)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdSubpassShadingHUAWEI-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_HUAWEI_subpass_shading)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_HUAWEI_subpass_shading)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_HUAWEI_subpass_shading)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdSubpassShadingHUAWEI-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_HUAWEI_subpass_shading)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdSubpassShadingHUAWEI-None-02698",
"text": " This command <strong class=\"purple\">must</strong> only be called inside of a render pass instance"
}
],
+ "(VK_NV_device_generated_commands)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_device_generated_commands)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_device_generated_commands)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_device_generated_commands)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_device_generated_commands)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698",
],
"(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state2)": [
{
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
- },
- {
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04876",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetRasterizerDiscardEnableEXT\">vkCmdSetRasterizerDiscardEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
},
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_LOGIC_OP_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetLogicOpEXT\">vkCmdSetLogicOpEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command and the <code>logicOp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkLogicOp\">VkLogicOp</a> value"
},
{
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04875",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
+ },
+ {
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04879",
"text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT</code> dynamic state enabled then <a href=\"#vkCmdSetPrimitiveRestartEnableEXT\">vkCmdSetPrimitiveRestartEnableEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command"
}
"text": " If the <a href=\"#limits-primitiveFragmentShadingRateWithMultipleViewports\"><code>primitiveFragmentShadingRateWithMultipleViewports</code></a> limit is not supported, the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT</code> dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the <code>PrimitiveShadingRateKHR</code> built-in, then <a href=\"#vkCmdSetViewportWithCountEXT\">vkCmdSetViewportWithCountEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>viewportCount</code> parameter of <code>vkCmdSetViewportWithCountEXT</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
- "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04912",
- "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- },
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04884",
- "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
- }
- ],
- "(VK_NV_device_generated_commands)+(VK_EXT_vertex_input_dynamic_state)": [
- {
- "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04914",
- "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
- }
- ],
"(VK_NV_device_generated_commands)+(VK_KHR_dynamic_rendering)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172",
"text": " If the current render pass instance was begun with <a href=\"#vkCmdBeginRenderingKHR\">vkCmdBeginRenderingKHR</a>, the currently bound pipeline <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>renderPass</code> equal to <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
],
+ "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04912",
+ "text": " If the bound graphics pipeline was created with both the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> and <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic states enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ },
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04913",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but not the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_NV_device_generated_commands)+(VK_EXT_extended_dynamic_state)+!(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04884",
+ "text": " If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this drawing command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ],
+ "(VK_NV_device_generated_commands)+(VK_EXT_vertex_input_dynamic_state)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04914",
+ "text": " If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdSetVertexInputEXT\">vkCmdSetVertexInputEXT</a> <strong class=\"purple\">must</strong> have been called in the current command buffer prior to this draw command"
+ }
+ ],
+ "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)": [
+ {
+ "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481",
+ "text": " The bound graphics pipeline <strong class=\"purple\">must</strong> not have been created with the <a href=\"#VkPipelineShaderStageCreateInfo\">VkPipelineShaderStageCreateInfo</a>::<code>stage</code> member of an element of <a href=\"#VkGraphicsPipelineCreateInfo\">VkGraphicsPipelineCreateInfo</a>::<code>pStages</code> set to <code>VK_SHADER_STAGE_TASK_BIT_NV</code> or <code>VK_SHADER_STAGE_MESH_BIT_NV</code>"
+ }
+ ],
"(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [
{
"vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02910",
"text": " Each of <code>callableShaderBindingTableBuffer</code>, <code>commandBuffer</code>, <code>hitShaderBindingTableBuffer</code>, <code>missShaderBindingTableBuffer</code>, and <code>raygenShaderBindingTableBuffer</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdTraceRaysNV-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdTraceRaysNV-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysNV-None-02698",
"text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
}
],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdTraceRaysKHR-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdTraceRaysKHR-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysKHR-None-02698",
"text": " This command <strong class=\"purple\">must</strong> only be called outside of a render pass instance"
}
],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdTraceRaysIndirectKHR-aspectMask-06478",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view <strong class=\"purple\">must</strong> have been created with an <code>aspectMask</code> that contains <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>."
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_format_feature_flags2)": [
+ {
+ "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-06479",
+ "text": " If a <a href=\"#VkImageView\">VkImageView</a> is sampled with <a href=\"#textures-depth-compare-operation\">depth comparison</a>, the image view’s <a href=\"#resources-image-view-format-features\">format features</a> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424",
+ "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
+ }
+ ],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692",
"text": " Any <a href=\"#VkImage\">VkImage</a> created with a <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> containing <code>VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV</code> sampled as a result of this command <strong class=\"purple\">must</strong> only be sampled using a <a href=\"#VkSamplerAddressMode\">VkSamplerAddressMode</a> of <code>VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE</code>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_KHR_format_feature_flags2)": [
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being written as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR</code>"
- },
- {
- "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424",
- "text": " Any <a href=\"#VkImageView\">VkImageView</a> or <a href=\"#VkBufferView\">VkBufferView</a> being read as a storage image or storage texel buffer where the image format field of the <code>OpTypeImage</code> is <code>Unknown</code> <strong class=\"purple\">must</strong> have image format features that support <code>VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR</code>"
- }
- ],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698",
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a> or <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a>"
},
{
"vuid": "VUID-VkVideoCodingControlInfoKHR-sType-unique",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR</code>"
},
{
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkVideoEncodeRateControlFlagBitsKHR\">VkVideoEncodeRateControlFlagBitsKHR</a> values"
+ "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameter",
+ "text": " <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value"
},
{
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-flags-requiredbitmask",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not be <code>0</code>"
+ "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-pLayerConfigs-parameter",
+ "text": " <code>pLayerConfigs</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>layerCount</code> valid <a href=\"#VkVideoEncodeRateControlLayerInfoKHR\">VkVideoEncodeRateControlLayerInfoKHR</a> structures"
},
{
- "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-rateControlMode-parameter",
- "text": " <code>rateControlMode</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeRateControlModeFlagBitsKHR\">VkVideoEncodeRateControlModeFlagBitsKHR</a> value"
+ "vuid": "VUID-VkVideoEncodeRateControlInfoKHR-layerCount-arraylength",
+ "text": " <code>layerCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ }
+ ]
+ },
+ "VkVideoEncodeRateControlLayerInfoKHR": {
+ "(VK_KHR_video_encode_queue)": [
+ {
+ "vuid": "VUID-VkVideoEncodeRateControlLayerInfoKHR-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR</code>"
}
]
},
}
]
},
+ "VkVideoEncodeH264RateControlInfoEXT": {
+ "(VK_EXT_video_encode_h264)": [
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT</code>"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlInfoEXT-rateControlStructure-parameter",
+ "text": " <code>rateControlStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264RateControlStructureFlagBitsEXT\">VkVideoEncodeH264RateControlStructureFlagBitsEXT</a> value"
+ }
+ ]
+ },
+ "VkVideoEncodeH264RateControlLayerInfoEXT": {
+ "(VK_EXT_video_encode_h264)": [
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06474",
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>."
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-rateControlMode-06475",
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>."
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT</code>"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-initialRcQp-parameter",
+ "text": " <code>initialRcQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-minQp-parameter",
+ "text": " <code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxQp-parameter",
+ "text": " <code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264QpEXT\">VkVideoEncodeH264QpEXT</a> structure"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH264RateControlLayerInfoEXT-maxFrameSize-parameter",
+ "text": " <code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH264FrameSizeEXT\">VkVideoEncodeH264FrameSizeEXT</a> structure"
+ }
+ ]
+ },
"VkVideoEncodeH265ProfileEXT": {
"(VK_EXT_video_encode_h265)": [
{
}
]
},
+ "VkVideoEncodeH265RateControlInfoEXT": {
+ "(VK_EXT_video_encode_h265)": [
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT</code>"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlInfoEXT-rateControlStructure-parameter",
+ "text": " <code>rateControlStructure</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265RateControlStructureFlagBitsEXT\">VkVideoEncodeH265RateControlStructureFlagBitsEXT</a> value"
+ }
+ ]
+ },
+ "VkVideoEncodeH265RateControlLayerInfoEXT": {
+ "(VK_EXT_video_encode_h265)": [
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06476",
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, both <code>useMinQp</code> and <code>useMaxQp</code> must be set to <code>VK_TRUE</code>."
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-rateControlMode-06477",
+ "text": " When <a href=\"#VkVideoEncodeRateControlInfoKHR\">VkVideoEncodeRateControlInfoKHR</a>::<code>rateControlMode</code> is <code>VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR</code>, the values provided in <code>minQP</code> must be identical to those provided in <code>maxQp</code>."
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT</code>"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-initialRcQp-parameter",
+ "text": " <code>initialRcQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-minQp-parameter",
+ "text": " <code>minQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxQp-parameter",
+ "text": " <code>maxQp</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265QpEXT\">VkVideoEncodeH265QpEXT</a> structure"
+ },
+ {
+ "vuid": "VUID-VkVideoEncodeH265RateControlLayerInfoEXT-maxFrameSize-parameter",
+ "text": " <code>maxFrameSize</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkVideoEncodeH265FrameSizeEXT\">VkVideoEncodeH265FrameSizeEXT</a> structure"
+ }
+ ]
+ },
"vkEnumerateInstanceLayerProperties": {
"core": [
{
{
"vuid": "VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM</code>"
- },
- {
- "vuid": "VUID-VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
}
]
},
<type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.2 version number
#define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 200</type>
+#define <name>VK_HEADER_VERSION</name> 201</type>
<type category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, VK_HEADER_VERSION)</type>
<type requires="VkVideoEncodeH264InputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264InputModeFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH264OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264OutputModeFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH264CreateFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CreateFlagsEXT</name>;</type>
+ <type requires="VkVideoEncodeH264RateControlStructureFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264RateControlStructureFlagsEXT</name>;</type>
<comment>Video Encode H.265 extension</comment>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH265OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CreateFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CtbSizeFlagsEXT</name>;</type>
+ <type requires="VkVideoEncodeH265RateControlStructureFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265RateControlStructureFlagsEXT</name>;</type>
<comment>Types which can be void pointers or class pointers, selected at compile time</comment>
<type category="handle" objtypeenum="VK_OBJECT_TYPE_INSTANCE"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type>
<type name="VkVideoEncodeH264InputModeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH264OutputModeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH264CreateFlagBitsEXT" category="enum"/>
+ <type name="VkVideoEncodeH264RateControlStructureFlagBitsEXT" category="enum"/>
<comment>Video H.265 Encode extensions</comment>
<type name="VkVideoEncodeH265InputModeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH265OutputModeFlagBitsEXT" category="enum"/>
<type name="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="enum"/>
+ <type name="VkVideoEncodeH265RateControlStructureFlagBitsEXT" category="enum"/>
<comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment>
<type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalAllocationNotification</name>)(
<member>const <type>VkVideoReferenceSlotKHR</type>* <name>pSetupReferenceSlot</name></member>
<member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
<member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
+ <member><type>uint32_t</type> <name>precedingExternallyEncodedBytes</name></member>
</type>
<type category="struct" name="VkVideoEncodeRateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
- <member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkVideoEncodeRateControlFlagsKHR</type> <name>flags</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member noautovalidity="true"><type>VkVideoEncodeRateControlFlagsKHR</type> <name>flags</name></member>
<member><type>VkVideoEncodeRateControlModeFlagBitsKHR</type> <name>rateControlMode</name></member>
+ <member><type>uint8_t</type> <name>layerCount</name></member>
+ <member len="layerCount">const <type>VkVideoEncodeRateControlLayerInfoKHR</type>* <name>pLayerConfigs</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeRateControlLayerInfoKHR" structextends="VkVideoCodingControlInfoKHR">
+ <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR"><type>VkStructureType</type><name>sType</name></member>
+ <member>const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>averageBitrate</name></member>
- <member><type>uint16_t</type> <name>peakToAverageBitrateRatio</name></member>
- <member><type>uint16_t</type> <name>frameRateNumerator</name></member>
- <member><type>uint16_t</type> <name>frameRateDenominator</name></member>
+ <member><type>uint32_t</type> <name>maxBitrate</name></member>
+ <member><type>uint32_t</type> <name>frameRateNumerator</name></member>
+ <member><type>uint32_t</type> <name>frameRateDenominator</name></member>
<member><type>uint32_t</type> <name>virtualBufferSizeInMs</name></member>
+ <member><type>uint32_t</type> <name>initialVirtualBufferSizeInMs</name></member>
</type>
<type category="struct" name="VkVideoEncodeH264CapabilitiesEXT" structextends="VkVideoCapabilitiesKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT"><type>VkStructureType</type><name>sType</name></member>
<member len="refFinalList0EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>* <name>pRefFinalList0Entries</name></member>
<member><type>uint8_t</type> <name>refFinalList1EntryCount</name></member>
<member len="refFinalList1EntryCount">const <type>VkVideoEncodeH264DpbSlotInfoEXT</type>* <name>pRefFinalList1Entries</name></member>
- <member><type>uint32_t</type> <name>precedingNaluBytes</name></member>
- <member><type>uint8_t</type> <name>minQp</name></member>
- <member><type>uint8_t</type> <name>maxQp</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH264RateControlInfoEXT" structextends="VkVideoEncodeRateControlInfoKHR">
+ <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>gopFrameCount</name></member>
+ <member><type>uint32_t</type> <name>idrPeriod</name></member>
+ <member><type>uint32_t</type> <name>consecutiveBFrameCount</name></member>
+ <member><type>VkVideoEncodeH264RateControlStructureFlagBitsEXT</type> <name>rateControlStructure</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH264QpEXT">
+ <member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
+ <member noautovalidity="true"><type>int32_t</type> <name>qpP</name></member>
+ <member noautovalidity="true"><type>int32_t</type> <name>qpB</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH264FrameSizeEXT">
+ <member noautovalidity="true"><type>uint32_t</type> <name>frameISize</name></member>
+ <member noautovalidity="true"><type>uint32_t</type> <name>framePSize</name></member>
+ <member noautovalidity="true"><type>uint32_t</type> <name>frameBSize</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH264RateControlLayerInfoEXT" structextends="VkVideoEncodeRateControlLayerInfoKHR">
+ <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint8_t</type> <name>temporalLayerId</name></member>
+ <member><type>VkBool32</type> <name>useInitialRcQp</name></member>
+ <member><type>VkVideoEncodeH264QpEXT</type> <name>initialRcQp</name></member>
+ <member><type>VkBool32</type> <name>useMinQp</name></member>
+ <member><type>VkVideoEncodeH264QpEXT</type> <name>minQp</name></member>
+ <member><type>VkBool32</type> <name>useMaxQp</name></member>
+ <member><type>VkVideoEncodeH264QpEXT</type> <name>maxQp</name></member>
+ <member><type>VkBool32</type> <name>useMaxFrameSize</name></member>
+ <member><type>VkVideoEncodeH264FrameSizeEXT</type> <name>maxFrameSize</name></member>
</type>
<type category="struct" name="VkVideoEncodeH265CapabilitiesEXT" structextends="VkVideoCapabilitiesKHR">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT"><type>VkStructureType</type><name>sType</name></member>
<member optional="true">const <type>VkVideoEncodeH265ReferenceListsEXT</type>* <name>pReferenceFinalLists</name></member>
<member>const <type>StdVideoEncodeH265SliceHeader</type>* <name>pSliceHeaderStd</name></member>
</type>
+ <type category="struct" name="VkVideoEncodeH265RateControlInfoEXT" structextends="VkVideoEncodeRateControlInfoKHR">
+ <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint32_t</type> <name>gopFrameCount</name></member>
+ <member><type>uint32_t</type> <name>idrPeriod</name></member>
+ <member><type>uint32_t</type> <name>consecutiveBFrameCount</name></member>
+ <member><type>VkVideoEncodeH265RateControlStructureFlagBitsEXT</type> <name>rateControlStructure</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH265QpEXT">
+ <member noautovalidity="true"><type>int32_t</type> <name>qpI</name></member>
+ <member noautovalidity="true"><type>int32_t</type> <name>qpP</name></member>
+ <member noautovalidity="true"><type>int32_t</type> <name>qpB</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH265FrameSizeEXT">
+ <member noautovalidity="true"><type>uint32_t</type> <name>frameISize</name></member>
+ <member noautovalidity="true"><type>uint32_t</type> <name>framePSize</name></member>
+ <member noautovalidity="true"><type>uint32_t</type> <name>frameBSize</name></member>
+ </type>
+ <type category="struct" name="VkVideoEncodeH265RateControlLayerInfoEXT" structextends="VkVideoEncodeRateControlLayerInfoKHR">
+ <member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>uint8_t</type> <name>temporalId</name></member>
+ <member><type>VkBool32</type> <name>useInitialRcQp</name></member>
+ <member><type>VkVideoEncodeH265QpEXT</type> <name>initialRcQp</name></member>
+ <member><type>VkBool32</type> <name>useMinQp</name></member>
+ <member><type>VkVideoEncodeH265QpEXT</type> <name>minQp</name></member>
+ <member><type>VkBool32</type> <name>useMaxQp</name></member>
+ <member><type>VkVideoEncodeH265QpEXT</type> <name>maxQp</name></member>
+ <member><type>VkBool32</type> <name>useMaxFrameSize</name></member>
+ <member><type>VkVideoEncodeH265FrameSizeEXT</type> <name>maxFrameSize</name></member>
+ </type>
<type category="struct" name="VkVideoEncodeH265ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>float</type> <name>minLod</name></member>
</type>
- <type category="struct" name="VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM" returnedonly="true">
+ <type category="struct" name="VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>rasterizationOrderColorAttachmentAccess</name></member>
</enums>
<enums name="VkVideoEncodeRateControlFlagBitsKHR" type="bitmask">
<enum value="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"/>
- <enum bitpos="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR"/>
+ <enum bitpos="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_RESERVED_0_BIT_KHR"/>
</enums>
<enums name="VkVideoEncodeRateControlModeFlagBitsKHR" type="bitmask">
<enum value="0" name="VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"/>
<enum bitpos="7" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"/>
<enum bitpos="8" name="VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"/>
<enum bitpos="9" name="VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"/>
- <enum bitpos="10" name="VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"/>
+ <enum bitpos="10" name="VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"/>
+ <enum bitpos="11" name="VK_VIDEO_ENCODE_H264_CAPABILITY_OPTIONAL_RC_EXTENSION_STRUCT_BIT_EXT"/>
</enums>
<enums name="VkVideoEncodeH264InputModeFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"/>
<enum value="0" name="VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT"/>
<enum bitpos="0" name="VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT"/>
</enums>
+ <enums name="VkVideoEncodeH264RateControlStructureFlagBitsEXT" type="bitmask">
+ <enum value="0" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
+ <enum bitpos="0" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"/>
+ <enum bitpos="1" name="VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"/>
+ </enums>
<enums name="VkImageFormatConstraintsFlagBitsFUCHSIA" type="bitmask">
</enums>
<enums name="VkImageConstraintsInfoFlagBitsFUCHSIA" type="bitmask">
<enum bitpos="1" name="VK_RENDERING_SUSPENDING_BIT_KHR"/>
<enum bitpos="2" name="VK_RENDERING_RESUMING_BIT_KHR"/>
</enums>
+ <enums name="VkVideoEncodeH265RateControlStructureFlagBitsEXT" type="bitmask">
+ <enum value="0" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT"/>
+ <enum bitpos="0" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_BIT_EXT"/>
+ <enum bitpos="1" name="VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_BIT_EXT"/>
+ </enums>
<commands comment="Vulkan command definitions">
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
<type name="VkPhysicalDeviceVariablePointerFeatures"/>
<type name="VkPhysicalDeviceVariablePointersFeatures"/>
</require>
- <require comment="Originally based on VK_KHR_protected_memory (extension 146), which was never published; thus the mystifying large value= numbers below. These are not aliased since they weren't actually promoted from an extension.">
+ <require comment="Originally based on VK_KHR_protected_memory (extension 146), which was never published; thus the mystifying large value= numbers below. These are not aliased since they were not actually promoted from an extension.">
<enum extends="VkStructureType" extnumber="146" offset="0" name="VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"/>
<enum extends="VkStructureType" extnumber="146" offset="1" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"/>
<enum extends="VkStructureType" extnumber="146" offset="2" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"/>
</extension>
<extension name="VK_ANDROID_native_buffer" number="11" type="device" author="ANDROID" platform="android" contact="Jesse Hall @critsec" supported="disabled">
<require>
- <comment>VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It isn't exposed to applications and uses types that aren't part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers.</comment>
+ <comment>VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It is not exposed to applications and uses types that are not part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers.</comment>
<enum value="8" name="VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="11" name="VK_ANDROID_NATIVE_BUFFER_NUMBER"/>
<enum value=""VK_ANDROID_native_buffer"" name="VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME"/>
<enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+ <enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+ <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="16" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<type name="VkVideoEncodeH264CapabilityFlagBitsEXT"/>
<type name="VkVideoEncodeH264DpbSlotInfoEXT"/>
<type name="VkVideoEncodeH264NaluSliceEXT"/>
<type name="VkVideoEncodeH264ProfileEXT"/>
+ <type name="VkVideoEncodeH264RateControlInfoEXT"/>
+ <type name="VkVideoEncodeH264RateControlStructureFlagBitsEXT"/>
+ <type name="VkVideoEncodeH264RateControlStructureFlagsEXT"/>
+ <type name="VkVideoEncodeH264RateControlLayerInfoEXT"/>
+ <type name="VkVideoEncodeH264QpEXT"/>
+ <type name="VkVideoEncodeH264FrameSizeEXT"/>
</require>
</extension>
<extension name="VK_EXT_video_encode_h265" number="40" type="device" requires="VK_KHR_video_encode_queue" author="KHR" contact="Ahmed Abdelkhalek @aabdelkh" provisional="true" platform="provisional" supported="vulkan">
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+ <enum offset="10" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+ <enum offset="11" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="17" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<type name="VkVideoEncodeH265CapabilityFlagsEXT"/>
<type name="VkVideoEncodeH265NaluSliceEXT"/>
<type name="VkVideoEncodeH265ProfileEXT"/>
<type name="VkVideoEncodeH265ReferenceListsEXT"/>
+ <type name="VkVideoEncodeH265RateControlInfoEXT"/>
+ <type name="VkVideoEncodeH265RateControlStructureFlagBitsEXT"/>
+ <type name="VkVideoEncodeH265RateControlStructureFlagsEXT"/>
+ <type name="VkVideoEncodeH265RateControlLayerInfoEXT"/>
+ <type name="VkVideoEncodeH265QpEXT"/>
+ <type name="VkVideoEncodeH265FrameSizeEXT"/>
</require>
</extension>
<extension name="VK_EXT_video_decode_h264" number="41" type="device" requires="VK_KHR_video_decode_queue" author="KHR" contact="peter.fang@amd.com" provisional="true" platform="provisional" supported="vulkan">
<enum bitpos="38" extends="VkAccessFlagBits2KHR" name="VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
+ <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="6" extends="VkQueueFlagBits" name="VK_QUEUE_VIDEO_ENCODE_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="15" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<enum bitpos="16" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR" protect="VK_ENABLE_BETA_EXTENSIONS"/>
<type name="VkVideoEncodeRateControlModeFlagsKHR"/>
<type name="VkVideoEncodeRateControlInfoKHR"/>
+ <type name="VkVideoEncodeRateControlLayerInfoKHR"/>
<command name="vkCmdEncodeVideoKHR"/>
</require>
<require extension="VK_KHR_format_feature_flags2">
<enum value=""VK_EXT_extension_437"" name="VK_EXT_EXTENSION_437_EXTENSION_NAME"/>
</require>
</extension>
+ <extension name="VK_EXT_extension_438" number="438" author="EXT" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm" supported="disabled">
+ <require>
+ <enum value="0" name="VK_EXT_EXTENSION_438_SPEC_VERSION"/>
+ <enum value=""VK_EXT_extension_438"" name="VK_EXT_EXTENSION_438_EXTENSION_NAME"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
<format name="VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16" class="10-bit 2-plane 422" blockSize="6" texelsPerBlock="1" packed="16" chroma="422">
<component name="G" bits="10" numericFormat="UNORM" planeIndex="0"/>
<component name="B" bits="10" numericFormat="UNORM" planeIndex="1"/>
- <component name="R" bits="10" numericFormat="UNORM" planeIndex="2"/>
+ <component name="R" bits="10" numericFormat="UNORM" planeIndex="1"/>
<plane index="0" widthDivisor="1" heightDivisor="1" compatible="VK_FORMAT_R10X6_UNORM_PACK16"/>
<plane index="1" widthDivisor="2" heightDivisor="1" compatible="VK_FORMAT_R10X6G10X6_UNORM_2PACK16"/>
</format>
def specURL(self, spectype='api'):
"""Return public registry URL which ref pages should link to for the
current all-extensions HTML specification, so xrefs in the
- asciidoc source that aren't to ref pages can link into it
+ asciidoc source that are not to ref pages can link into it
instead. N.b. this may need to change on a per-refpage basis if
there are multiple documents involved.
"""
@property
def unified_flag_refpages(self):
"""Return True if Flags/FlagBits refpages are unified, False if
- they're separate.
+ they are separate.
"""
return False
def category_requires_validation(self, category):
"""Return True if the given type 'category' always requires validation.
- Overridden because Vulkan doesn't require "valid" text for basetype in the spec right now."""
+ Overridden because Vulkan does not require "valid" text for basetype
+ in the spec right now."""
return category in CATEGORIES_REQUIRING_VALIDATION
@property